兩種監(jiān)聽器:
OnItemClickListener:處理視圖中單個(gè)條目的點(diǎn)擊事件
OnScrollListener:監(jiān)視滾動(dòng)的變換传趾,常用于視圖在滾動(dòng)中加載數(shù)據(jù)
pre.用接口方法實(shí)現(xiàn)
public class MainActivity extends Activity implements OnItemClickListener ,
OnScrollListener
一.點(diǎn)擊事件監(jiān)聽
1.設(shè)置監(jiān)聽器:
lv.setOnItemClickListener(this);
2.為監(jiān)聽器編寫方法
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
String text= lv.getItemAtPosition(position)+"";
Toast.makeText(this, "position="+position+"text="+text,
Toast.LENGTH_SHORT).show();
}
二.滾動(dòng)事件監(jiān)聽
1.設(shè)置監(jiān)聽器:
lv.setOnScrollListener(this);
2.為監(jiān)聽器編寫方法
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
switch (scrollState) {
case SCROLL_STATE_FLING:
Log.i("tag", "用戶手指離開屏幕后绪励,因慣性繼續(xù)滑動(dòng)");
Map<String,Object>map = new HashMap<String,Object>();
map.put("pic", R.drawable.ic_launcher);
map.put("text", "增加項(xiàng)");
dataList.add(map);
sim_Adapter.notifyDataSetChanged();
break;
case SCROLL_STATE_IDLE:
Log.i("tag","已經(jīng)停止滑動(dòng)");
break;
case SCROLL_STATE_TOUCH_SCROLL:
Log.i("tag", "手指未離開屏幕紧显,屏幕繼續(xù)滑動(dòng)");
break;
}
}
代碼理解:
Map<String,Object>map = new HashMap<String,Object>();
map.put("pic", R.drawable.ic_launcher);
map.put("text", "增加項(xiàng)");
dataList.add(map);
sim_Adapter.notifyDataSetChanged();
當(dāng)用戶大力滑動(dòng)屏幕且手指離開屏幕后屏幕仍繼續(xù)滑動(dòng)的摊欠,新建立一個(gè)哈希表通過(guò)map.put為其賦值蜻底,并將新的哈希表添加在datalist末尾碍庵,通過(guò)notifyDataSetChanged()方法提醒頁(yè)面組件重新載入資源