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;	}}

推荐文章:点击打开链接

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 100个Python练手小程序[通俗易懂]

    100个Python练手小程序[通俗易懂]100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python。【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去      掉不满足条件的排列。2.程序源代码:foriinrange(…

    2022年4月19日
  • Mac OS 查看 ip 地址及 DHCP 各 addr 含义「建议收藏」

    Mac OS 查看 ip 地址及 DHCP 各 addr 含义

    2022年2月11日
  • iOS实现多个可变cell复杂界面的制作

    iOS实现多个可变cell复杂界面的制作

    2022年3月5日
  • currentStyle使用示例[通俗易懂]

    currentStyle使用示例[通俗易懂]currentStyle使用示例Dom中的currentStyle属性.从字面上理解这是当前样式风格.没错currentStyle就是用来获取元素内Css的style样式属性值.比如说元素的width值height值.甚至元素的文本排放方式text-align,包括

    2022年7月14日
  • java常见面试题及答案 11-20(JVM)

    11.JVM内存分哪几个区,每个区的作用是什么?java虚拟机主要分为以下一个区:方法区:1.有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2.方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器编译后的代码等数据。3.该区域是被线程共享的。4.方法区里有

    2022年4月13日
  • phpstorm+AppServ配置和出现timezone setting错误

    phpstorm+AppServ配置和出现timezone setting错误setting —> php,选择php版本,并点击…,选择到php.exe进入到appserv底下找到php.ini文件,查找date.timezone,去掉前面的;号,添加”Asia/Shanghai”重启appserv环境,就是重启下apache 和 mysql服务发现依然失败后面重启电脑就可以了哈哈哈哈哈哈哈哈…

    2022年8月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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