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)
上一篇 2022年7月22日 上午7:00
下一篇 2022年7月22日 上午7:00


相关推荐

  • 呼叫中心系统开发php,呼叫中心系统

    呼叫中心系统开发php,呼叫中心系统系统概述呼叫中心系统是惟新科技自主研发的大容量 高性能呼叫中心系统 为用户提供语音 短信等信息服务 系统主要包括基本电话业务功能 队列排队功能 IVR 自动语音导航 ACD 智能话务分配 录音和语音信箱等功能 可提供标准的 CTI 开发接口 和客户业务系统完美对接 轻松应对客户峰涌式电话需求 系统特点高可靠呼叫中心系统核心硬件采用高性能服务器 并且支持双机热备 可堆叠扩展 分布式部署采用先进的 NGN 技术

    2026年3月19日
    1
  • 数字电路实验(三)——加法器、运算器

    数字电路实验(三)——加法器、运算器1、实验步骤:A全加器:1个vhd文件,用来定义顶层实体1个vwf文件,用来进行波形仿真,将验证的波形输入1、新建,编写源代码。(1).选择保存项和芯片类型:【File】-【newprojectwizard】-【next】(设置文件路径+设置projectname为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\全加器】)-【next】(设…

    2022年7月12日
    20
  • 成员变量和局部变量区别

    成员变量和局部变量区别成员变量和局部变量区别在类中的位置不同成员变量 在类中方法外面局部变量 在方法或者代码块中 或者方法的声明上 即在参数列表中 在内存中的位置不同成员变量 在堆中 方法区中静态区 成员变量属于对象 对象进堆内存局部变量 在栈中 局部变量属于方法 方法进栈内存生命周期不同成员变量 随着对象的创建而存在 随着对象的消失而消失局部变量 随着方法的调用或代码块的执行而存在 随着方法的调用完毕或者代码块的执行完毕而消失初始值成员变量 有默认初始值局部变量 没有默认初始值 使用前需赋值注意

    2026年3月17日
    2
  • Laravel核心内容:契约,你了解多少?

    Laravel核心内容:契约,你了解多少?

    2022年2月19日
    53
  • Netty系列之Netty安全性

    Netty系列之Netty安全性

    2022年3月12日
    36
  • 好东西!

    好东西!

    2021年7月28日
    63

发表回复

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

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