国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

ListView-添加item的事件監聽實例

2019-10-22 18:33:05
字體:
來源:轉載
供稿:網友

1. 點擊事件(OnItemClickListener)

onItemClick(AdapterView<?> parent, View view, int position, long id)

parent:官方解釋為:The AdapterView where the click happened,也就是用戶所點擊的AdapterView,這個參數一般不用。

view:當前點擊的列表項所對應的布局View對象,可通過這個參數獲得相應的列表項內部的組件,進而對其進行操作。舉個例子,假設有一個ListView,含有4個列表項,你點了第2個,那么通過view你就可以操作第2個列表項里面的TextView、ImageView等等的組件(假設存在)。

position:當前點擊的列表項的位置,從0開始,也就是點擊第n個,position就是n-1。

id:當前點擊的列表項的序號,也是從0開始,所以大部分時候position和id是一樣的,至于這兩個參數之間有什么不同,有興趣的童鞋可以深究一下。

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{  private ListView myListView;  private SimpleAdapter simpleAdapter;  private List<Map<String, Object>> data;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    data = new ArrayList<Map<String, Object>>();    simpleAdapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img", "text"}, new int[]{R.id.img, R.id.text});    myListView = (ListView) findViewById(R.id.myListView);    //設置監聽器    myListView.setAdapter(simpleAdapter);    myListView.setOnItemClickListener(this);  }  private List<Map<String, Object>> getData() {    for (int i = 0; i < 20; i++) {      Map<String, Object>map = new HashMap<String, Object>();      map.put("img", R.mipmap.ic_launcher);      map.put("text", "初始simpleAdapter"+(i+1));      data.add(map);    }    return data;  }  @Override  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {    //通過view獲取其內部的組件,進而進行操作    String text = (String) ((TextView)view.findViewById(R.id.text)).getText();    //大多數情況下,position和id相同,并且都從0開始    String showText = "點擊第" + position + "項,文本內容為:" + text + ",ID為:" + id;    Toast.makeText(this, showText, Toast.LENGTH_LONG).show();  }}

2. 滾動事件(OnScrollListener)

void onScrollStateChanged(AbsListView view, int scrollState)

監聽滾動狀態的變化。

view:正在被滾動的視圖,也就是當前的ListView。

scrollState:滾動狀態,分別有以下幾種:

SCROLL_STATE_TOUCH_SCROLL:滑動狀態,手指在視圖滑動,并且手指一直停留在屏幕上而未離開。

SCROLL_STATE_FLING:投擲狀態,手指在離開視圖前,用力劃了一下(想象將視圖投擲出去的感覺),視圖會按照慣性滑動至停止。

SCROLL_STATE_IDLE:閑置狀態,什么都沒做的狀態。當投擲狀態或觸摸滾動狀態結束時,進入閑置狀態。

void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)

監聽非滾動狀態,只要ListView不滾動,就會被不斷調用。

view:正在被滾動的視圖,也就是當前的ListView。

firstVisibleItem:已加載的第一個列表項的索引值。

visibleItemCount:已加載的列表項的總數。

totalItemCount:適配器中數據源對應的列表項總數。

public class MainActivity extends Activity implements AbsListView.OnScrollListener{  private ListView myListView;  private SimpleAdapter simpleAdapter;  private List<Map<String, Object>> data;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    data = new ArrayList<Map<String, Object>>();    simpleAdapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img", "text"}, new int[]{R.id.img, R.id.text});    myListView = (ListView) findViewById(R.id.myListView);    myListView.setAdapter(simpleAdapter);    //設置監聽器    myListView.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("img", R.mipmap.ic_launcher);      map.put("text", "初始simpleAdapter"+(i+1));      data.add(map);    }    return data;  }  @Override  public void onScrollStateChanged(AbsListView view, int scrollState) {    switch (scrollState) {      //投擲狀態      case SCROLL_STATE_FLING:        Toast.makeText(this, "SCROLL_STATE_FLING", Toast.LENGTH_SHORT).show();        break;      //閑置狀態      case SCROLL_STATE_IDLE:        Toast.makeText(this, "SCROLL_STATE_IDLE", Toast.LENGTH_SHORT).show();        break;      //滑動狀態      case SCROLL_STATE_TOUCH_SCROLL:        Toast.makeText(this, "SCROLL_STATE_TOUCH_SCROLL", Toast.LENGTH_SHORT).show();        break;    }  }  @Override  public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {//    Toast.makeText(this, "滾動已停止,已加載的第一項的索引為:" + firstVisibleItem +//            ",已加載的列表項總數為:" + visibleItemCount + ",存在的列表項總數為:" +//            totalItemCount, Toast.LENGTH_LONG).show();  }}

以上這篇ListView-添加item的事件監聽實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 陵川县| 万年县| 乐山市| 德庆县| 满洲里市| 临桂县| 连江县| 从化市| 聂荣县| 垣曲县| 北票市| 翼城县| 开鲁县| 屯留县| 房山区| 黔江区| 乡宁县| 水城县| 克东县| 苍南县| 叶城县| 定陶县| 南通市| 大姚县| 运城市| 门源| 呼和浩特市| 澄城县| 宁安市| 通许县| 舞钢市| 任丘市| 城市| 中卫市| 揭西县| 太谷县| 金平| 鸡西市| 涞源县| 塔河县| 甘德县|