定义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(安卓)侧滑删除功能
  3. Android(安卓)页面惯性回弹效果,Nested接口接口简单实现。
  4. Android自定义属性与自定义属性的获取
  5. Android的数据处理:使用annotation实现JSON字符串解析为java对象
  6. Android下添加新的自定义键值和按键处理流程
  7. Android之使用GPS和NetWork定位
  8. Android中自定义控件
  9. [置顶] 一步一步学android OpenGL ES2.0编程(2)

随机推荐

  1. Android(安卓)java.lang.NoSuchMethodErr
  2. Android调用百度地图API实现――实时定位
  3. android 群发短信
  4. Unable to start activity ComponentInfo
  5. android,总结,判断应用程序是否切换到后
  6. Monkey测试结果解析(二)
  7. How to set up a link betwteen a real A
  8. Android(安卓)之 setContentView 源码阅
  9. Android(安卓)电话拨号
  10. android ping 命令使用问题