給ListeView列表中的每一個Item添加點擊事件


首先聲明本文主要是在ArrayAdapter、SimpleAdapter中對ListView的每一項進行點擊事件!

先看下運行結果


第一步:在xml布局中寫一個ListView

 <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/listView"
        ></ListView>

第三步:創建Item子布局

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/img"
    android:background="@mipmap/ic_launcher"
    />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv"
        android:text="上海"
        android:textSize="25dp"
        android:textColor="#f0f"
        />

第三步:來到我們的MainActivity中來,進行編寫程序

1.定義控件

  private ListView listView;
    private List<Map<String,Object>> data;//集合
    private String[] app={"音樂","支付寶","QQ","微信","電話","美團"};//ListView中Item的每一項
  // 2.實例化控件
   listView= (ListView) findViewById(R.id.listView);
        data=new ArrayList<>();
  //3.創建適配器,五個參數;
     /*
        第一個參數:上下文 對相this(若有寫this報告的話就改成 當前類名.this);
        第二個參數:數據源(ListView列表所展示的每一項數據)
        第三個參數:是你要在layout下新建一個Item布局,在布局中定義ListView列表項的顯示方式
        第四、五個參數:其實第四第五個參數就是一對鍵值對。
                                    第四個參數里面的“img”,"text"相當於鍵名;
                                    而第五個參數里面的兩個ID就是我在layout下新建的布局Item。這兩個ID就是在Item中的兩個控件!一個是圖片一個是文字
                                     還不懂的話就看第四步吧!
     */
        SimpleAdapter sim_adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"img","text"},new int[]{R.id.img,R.id.tv});
     //4.把listView與sim_adapter適配器綁定
        listView.setAdapter(sim_adapter);
     //5.本文最最最最重要的來啦!實現listview列表項的點擊事件!
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                switch (i){  //用swith的方法來實現item的每一項的點擊
                    case 0://0代表第一行的點擊!也可以點擊Item實現跳轉!只要用Intent來實現就好!
                        Toast.makeText(MainActivity.this, "我終於找到你了......", Toast.LENGTH_SHORT).show();
                        break;
                    case 1://0代表第一行的點擊
                        Toast.makeText(MainActivity.this, "我終於找到你了......", Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        });
    }
    public List<Map<String,Object>> getData() {//這里是第二個參數!自己看吧!!!
        for (int i=0;i<app.length;i++){
            Map<String,Object> map=new HashMap<>();
            map.put("img",R.mipmap.ic_launcher);
            map.put("text",app[i]);
            data.add(map);
        }
        return data;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM