android listview添加headview

android listview添加headviewlistview添加headview后的点击事件1、头部view:设置view的点击时间,用于屏蔽listview的item的点击事件 ViewheaderView=getLayoutInflater().inflate(R.layout.listhead,null); Buttonbtn=(Button)headerView.findViewById(R.id.bu

大家好,又见面了,我是你们的朋友全栈君。

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() {

			@Override
			public 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() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1,
					int position, long id) {
				
				//position 如果有headview  position =0 的第一个为headview
				Toast.makeText(MainActivity.this, "position:" + position,
						Toast.LENGTH_SHORT).show();
				
				//id:如果有headview或者footview  则这两个view的id为-1
				if (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;	@Override	protected 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() {			@Override			public 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() {			@Override			public void onItemClick(AdapterView<?> arg0, View arg1,					int position, long id) {								//position 如果有headview  position =0 的第一个为headview				Toast.makeText(MainActivity.this, "position:" + position,						Toast.LENGTH_SHORT).show();								//id:如果有headview或者footview  则这两个view的id为-1				if (id == -1) {					Toast.makeText(MainActivity.this, "head:" + id,							Toast.LENGTH_SHORT).show();				} else {					Toast.makeText(MainActivity.this, "id:" + id,							Toast.LENGTH_SHORT).show();				}			}		});	}	@Override	public 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;	}}

推荐文章:点击打开链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163272.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Axure导航二级菜单[通俗易懂]

    Axure导航二级菜单[通俗易懂]    效果:当鼠标移入或者单击“权限管理”时,“权限管理”填充色由蓝变为白,字体由白变成黑。同时,弹出两个子选项“账号管理”和“设备管理”,当鼠标移入子选项时,该子选项背景变为灰白色。当鼠标移出母选项和子选项时,弹框隐藏,同时母选项背景和字体颜色恢复原状。原型设计:(1)设置元件的选中状态(2)设置鼠标移入或移出该组件的事件为了更好设计逻辑,我们采用触发的方式,新…

  • dex文件解析(第三篇)「建议收藏」

    dex文件解析(第三篇)「建议收藏」一张图搞懂dex大图这里图1dex当然也可以通过下面的图12DexFile的文件格式,了解更清楚。DEX文件详解什么是dex文件?如何生成一个dex文件dex文件的作用dex文件格式详解什么是dex文件?dex文件是Android系统中的一种文件,是一种特殊的数据格式,和APK、jar等格式文件类似。能够被DVM识别,加载并执行的文件格式。简单说就

  • Python 实现PID控制一阶惯性系统[通俗易懂]

    Python 实现PID控制一阶惯性系统[通俗易懂]1.PID.py#PID控制一阶惯性系统测试程序#*****************************************************************##增量式PID系统##*************************************…

  • pandas’_pandas常用方法

    pandas’_pandas常用方法文章目录1.pd.Series.fillna官方案例2.pd.DataFrame.fillna官方案例1.pd.Series.fillnaSeries.fillna(value=None,method=None,axis=None,inplace=False,limit=None,downcast=None)描述按照指定的方法填充NA/NaN值参数value:scalar,dict,Series,orDataFrame标量值或字典对象用于填充缺失值要填充的值,该

  • 什么叫pure function(纯函数)[通俗易懂]

    什么叫pure function(纯函数)[通俗易懂]在Knockout中,用到了pureComputer(),其原理来自于纯函数(purefunction)。那么,什么叫纯函数呢?纯函数(来自:http://en.wikipedia.org/wiki/Pure_function)     在计算机编程中,假如满足下面这两个句子的约束,一个函数可能被描述为一个纯函数:给出同样的参数值,该函数总是求出同样的结果。该函数结

  • JAVA生成uuid_oracle随机生成uuid

    JAVA生成uuid_oracle随机生成uuidUUID生成importjava.util.UUID;publicclassJavaUUIDTest{publicstaticvoidmain(String[]args){//未加工的UUIDStringpreUuid=UUID.randomUUID().toString();System.out.println(preUuid);//第一种方法生成UUID,去掉“-”符号

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号