首先聲明本文主要是在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;
}
}
