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) { } }