定义Adapter

package com.example.administrator.myapplication;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import android.widget.Toast;import java.util.List;/** * Created by Administrator on 2019/1/27 0027. */public class ViewHolderAdapter extends BaseAdapter {    List mData;    public ViewHolderAdapter(List mData) {        this.mData = mData;    }    @Override    public int getCount() {        return mData.size();    }    @Override    public Object getItem(int i) {        return mData.get(i);    }    @Override    public long getItemId(int i) {        return i;    }    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        ViewHolder holder;        if(view==null){            holder=new ViewHolder();            view= LayoutInflater.from(viewGroup.getContext())                    .inflate(R.layout.layout_item,null,false);            holder.textView=view.findViewById(R.id.tv);            view.setTag(holder);        }else{            holder=(ViewHolder)view.getTag();        }        holder.textView.setText(mData.get(i));        holder.textView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Toast.makeText(view.getContext(),((TextView)view).getText().toString()                        , Toast.LENGTH_SHORT).show();            }        });        return view;    }    public final class ViewHolder{        public TextView textView;    }}

定义ListView 对应的布局,并设置空数据要显示的默认控件

<?xml version="1.0" encoding="utf-8"?>            
package com.example.administrator.myapplication;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.support.annotation.Nullable;import android.util.Log;import android.view.View;import android.widget.AbsListView;import android.widget.Button;import android.widget.LinearLayout;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;/** * Created by Administrator on 2019/1/27 0027. */public class ListViewActivity extends Activity {    private ListView listView;    private List mData=new ArrayList<>();    private ViewHolderAdapter aDataAdapter;    private Handler handler;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.layout_listview);        listView=findViewById(R.id.lv_list);        for (int i=0;i<20;i++){            mData.add("Test "+i);        }        aDataAdapter=new ViewHolderAdapter(mData);        listView.setAdapter(aDataAdapter);        //listView.setSelection(5);        listView.smoothScrollToPosition(14);        handler=new Handler();        handler.postDelayed(new Runnable() {            @Override            public void run() {                for (int i=0;i<10;i++){                    mData.add("Test "+19+i);                }                aDataAdapter.notifyDataSetChanged();            }        },2000);        listView.setEmptyView(findViewById(R.id.im));    }    @Override    protected void onResume() {        super.onResume();        Button btn=findViewById(R.id.btn);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                int count =listView.getCount();                Toast.makeText(ListViewActivity.this,                        " count "+count, Toast.LENGTH_SHORT).show();                mData.clear();                aDataAdapter.notifyDataSetChanged();            }        });        listView.setOnScrollListener(new AbsListView.OnScrollListener() {            @Override            public void onScrollStateChanged(AbsListView absListView, int i) {            }            @Override            public void onScroll(AbsListView absListView, int firstVisibleItem                    , int visibleItemCount, int totalItemCount) {                if(absListView.getCount()>0&&                        (firstVisibleItem+visibleItemCount)==absListView.getCount()                        &&!mData.contains("this is last one")){                        mData.add("this is last one");                        aDataAdapter.notifyDataSetChanged();                }            }        });    }}

滑动事件的监听

 

更多相关文章

  1. android 获取界面上所有控件
  2. Android开发——控件基础(七)ListView组件:示例代码
  3. Android Studio 第五十三期 - 自定义EditText密码键盘
  4. Android实现圆形头像-使用自定义控件
  5. android 算定义布局xml
  6. 自定义全屏Dialog
  7. android -布局控件禁用多点触控
  8. 1、ListView自定义控件下拉刷新(一)

随机推荐

  1. android子线程中刷新界面控件
  2. 从 android sqlite 中获取boolean值
  3. Android(安卓)WebView中的JavaScript调用
  4. Android(安卓)控件的显示和隐藏
  5. Android(安卓)轮询实现的三种方式
  6. 切换选项卡
  7. Android系统属性SystemProperties.set/ge
  8. 编译V8静态库 for Android
  9. android开源工程
  10. Android(安卓)Ble