android listview添加headview,androidheadview
listview添加headview後的點擊事件1、頭部view:設定view的點擊時間,用於屏蔽listview的item的點擊事件
<span style="white-space:pre"></span>View headerView = getLayoutInflater().inflate(R.layout.listhead, null);Button btn = (Button) headerView.findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Toast.makeText(MainActivity.this, "bn", Toast.LENGTH_SHORT).show();}});
2、添加頭部view:必須放在setAdapter前面不然會報錯
lv.addHeaderView(headerView);
3、listview填充假資料
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();HashMap<String, String> map = new HashMap<String, String>();map.put("tv", "tv");list.add(map);list.add(map);list.add(map);list.add(map);list.add(map);list.add(map);
<span style="white-space:pre"></span>SimpleAdapter sa = new SimpleAdapter(this, list, R.layout.item_lv,<span style="white-space:pre"></span>new String[] { "tv" }, new int[] { R.id.tv });
4、設定適配器:如果listview不設定適配器,headview也不會顯示的
<span style="white-space:pre"></span>lv.setAdapter(sa);
5、設定item點擊事件
lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1,int position, long id) {//position 如果有headview position =0 的第一個為headviewToast.makeText(MainActivity.this, "position:" + position,Toast.LENGTH_SHORT).show();//id:如果有headview或者footview 則這兩個view的id為-1if (id == -1) {Toast.makeText(MainActivity.this, "head:" + id,Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "id:" + id,Toast.LENGTH_SHORT).show();}}});
main.java全部代碼:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;public class MainActivity extends Activity {ListView lv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lv = (ListView) findViewById(R.id.listView1);// 頭部view:設定view的點擊時間,用於屏蔽listview的item的點擊事件View headerView = getLayoutInflater().inflate(R.layout.listhead, null);Button btn = (Button) headerView.findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Toast.makeText(MainActivity.this, "bn", Toast.LENGTH_SHORT).show();}});// 添加頭部view:必須放在adapter前面不然會報錯lv.addHeaderView(headerView);// 假資料List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();HashMap<String, String> map = new HashMap<String, String>();map.put("tv", "tv");list.add(map);list.add(map);list.add(map);list.add(map);list.add(map);list.add(map);SimpleAdapter sa = new SimpleAdapter(this, list, R.layout.item_lv,new String[] { "tv" }, new int[] { R.id.tv });// 設定適配器:如果listview不設定適配器,headview也不會顯示的lv.setAdapter(sa);// 設定item點擊事件:lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1,int position, long id) {//position 如果有headview position =0 的第一個為headviewToast.makeText(MainActivity.this, "position:" + position,Toast.LENGTH_SHORT).show();//id:如果有headview或者footview 則這兩個view的id為-1if (id == -1) {Toast.makeText(MainActivity.this, "head:" + id,Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "id:" + id,Toast.LENGTH_SHORT).show();}}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
推薦文章:點擊開啟連結