ListView+適配器
public?class?MainActivity?extends?ActionBarActivity?implements?ListView.OnItemClickListener,ListView.OnScrollListener?{ ????private?ListView?listView; ????private?ArrayAdapter?arrayAdapter; ????private?SimpleAdapter?simpleAdapter; ????private?List<Map>?data_list; ????@Override ????protected?void?onCreate(Bundle?savedInstanceState)?{ ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ????????listView?=?(ListView)findViewById(R.id.listView); ????????String[]?data?=?{"列表1","列表2","列表3","列表4","列表5"}; ????????data_list?=?new?ArrayList<Map>(); ????????arrayAdapter?=?new?ArrayAdapter(this,android.R.layout.simple_list_item_1,data); ????????/** ?????????*?上下文 ?????????*?數(shù)據(jù)源 ?????????*?布局xml ?????????*?數(shù)據(jù)源的字段 ?????????*?布局xml中對(duì)應(yīng)的字段 ?????????*/ ????????simpleAdapter?=?new?SimpleAdapter(this,getData(),R.layout.item,new?String[]{"pic","text"},new?int[]{R.id.pic,R.id.text}); ????????//listView.setAdapter(arrayAdapter); ????????listView.setAdapter(simpleAdapter); ????????listView.setOnItemClickListener(this); ????????listView.setOnScrollListener(this); ????} ????private?List<Map>?getData(){ ????????for(int?i?=?0;?i?<?40?;?++i){ ????????????Mapmap?=?new?HashMap(); ????????????map.put("pic",R.mipmap.ic_launcher); ????????????map.put("text",?"文本"?+?i); ????????????data_list.add(map); ????????} ????????return?data_list; ????} ????@Override ????public?void?onItemClick(AdapterView?parent,?View?view,?int?position,?long?id)?{ ????????String?str?=?listView.getItemAtPosition(position).toString(); ????????Toast.makeText(getApplicationContext(),position+"=>"+str,Toast.LENGTH_SHORT).show(); ????} ????@Override ????public?void?onScrollStateChanged(AbsListView?view,?int?scrollState)?{ ????????switch?(scrollState){ ????????????case?SCROLL_STATE_FLING: ????????????????Log.i("main",?"手指快速滑動(dòng)屏幕并離開(kāi),導(dǎo)致視圖一直滑動(dòng)"); ????????????????Mapmap?=?new?HashMap(); ????????????????//簡(jiǎn)單的滑動(dòng)刷新 ????????????????map.put("pic",R.mipmap.ic_launcher); ????????????????map.put("text",?"新的文本"+?System.currentTimeMillis()); ????????????????data_list.add(map); ????????????????listView.deferNotifyDataSetChanged();?//通知數(shù)據(jù)源 ????????????????break; ????????????case?SCROLL_STATE_IDLE: ????????????????Log.i("main","視圖停止滑動(dòng)"); ????????????????break; ????????????case?SCROLL_STATE_TOUCH_SCROLL: ????????????????Log.i("main","手指真正屏幕上滑動(dòng)"); ????????????????break; ????????} ????} ????@Override ????public?void?onScroll(AbsListView?view,?int?firstVisibleItem,?int?visibleItemCount,?int?totalItemCount)?{ ????} }
item.xml