public class SecondActivity extends Activity implements AdapterView.OnItemClickListener,AbsListView.OnScrollListener{ private ListView listView; private ArrayAdapter<String>arrayAdapter; private SimpleAdapter simpleAdapter; private List<Map<String,Object>> dataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); listView = (ListView)findViewById(R.id.listView); /* ArrayAdapter //1.新建一个数据适配器 //2.适配器加载数据源 //3.视图加载适配器 String[]arr_data = {"测试1","测试2","测试3","测试4","测试5"}; //ArrayAdapter(上下文,布局文件,数据源) arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr_data); listView.setAdapter(arrayAdapter); */ //SimpleAdapter /* * context:上下文 * data:数据源(List<? extends Map<String,?>>data) 一个map组成的list集合 * resource:列表项的布局文件ID * from:Map中的键名 * to:绑定数据视图中的ID,与from成对应关系 * */ dataList = new ArrayList<Map<String, Object>>(); simpleAdapter = new SimpleAdapter(this,getData(),R.layout.cell,new String[]{"cellpic","celltext"},new int[]{R.id.cellpic,R.id.celltext}); listView.setAdapter(simpleAdapter); listView.setOnItemClickListener(this); listView.setOnScrollListener(this); } private List<Map<String,Object>>getData(){ for (int i=0;i<20;i++){ Map<String,Object>map = new HashMap<String,Object>(); map.put("cellpic",R.drawable.icon); map.put("celltext","测试"+i); dataList.add(map); } return dataList; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String text = listView.getItemAtPosition(position).toString(); //能够缩写listView.getItemAtPosition(position)+“”; Toast.makeText(this,"position = "+position+" text = "+text,Toast.LENGTH_SHORT).show(); } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState){ case SCROLL_STATE_FLING: System.out.print("用户手指离开屏幕,但屏幕继续减速滑动过程当中"); //添加数据源 Map<String,Object>map = new HashMap<String,Object>(); map.put("cellpic",R.drawable.icon); map.put("celltext","增长项"); dataList.add(map); //适配器刷新数据 simpleAdapter.notifyDataSetChanged(); break; case SCROLL_STATE_IDLE: System.out.print("中止滑动"); break; case SCROLL_STATE_TOUCH_SCROLL: System.out.print("正在滑动"); break; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } }