ListView 显示两列并添加监听(Button 控件除外)

2024-05-24 00:18

本文主要是介绍ListView 显示两列并添加监听(Button 控件除外),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于项目需要,查阅资料自己做的demo,总共两个类,两个布局文件
1.Activity

package com.example.sqlitelistview;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.SimpleAdapter;public class MainActivity extends Activity { private ListView listView = null; private List<String> nameList = null; private List<String> ageList = null; private MyAdapter adapter = null; // private List<HashMap<String, String>> list= null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.list); adapter = new MyAdapter(this, getNameList(), getAgeList()); listView.setAdapter(adapter); // listView.setAdapter(getAdapter()); //设置监听 // listView.setOnItemClickListener(new OnItemClickListener() { // public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { // } // }); } public List<String> getAgeList(){ ageList = new ArrayList<String>(); for(int i = 1 ; i <= 20 ; i ++){ ageList.add(String.valueOf(i)); } return ageList; } public List<String> getNameList(){ nameList = new ArrayList<String>(); String firstName = "张"; for(int i = 1 ; i <= 20 ; i ++){ nameList.add(firstName + i); } return nameList; } // public List<HashMap<String,String>> getData(){ // HashMap<String, String> userMap = null; // list = new ArrayList<HashMap<String,String>>(); // String name = "张"; // for(int i = 22 ; i < 26 ; i ++){ // userMap = new HashMap<String, String>(); // userMap.put("name",name + i ); // userMap.put("age",String.valueOf(i) ); // list.add(userMap); // } // return list; // } // public SimpleAdapter getAdapter(){ // return new SimpleAdapter(getApplicationContext(), getData(), R.layout.adapter_list, new String[]{"name","age"}, new int[]{R.id.name,R.id.age}); // // } }

2.Adapter

package com.example.sqlitelistview;import java.util.ArrayList; import java.util.List;import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import android.widget.Toast;public class MyAdapter extends BaseAdapter { private Listener listener = null; private Context context; private List<String> name = new ArrayList<String>(); private List<String> age = new ArrayList<String>(); private LayoutInflater inflater; public MyAdapter(Context context,List<String> name, List<String> age){ this.context = context; this.name = name; this.age = age; inflater=LayoutInflater.from(context); listener = new Listener(); } public int getCount() { return name.size(); } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } public View getView(int position, View convertView, ViewGroup parent) { if(convertView == null){ convertView = inflater.inflate(R.layout.adapter_list, null); } TextView nameView = (TextView) convertView.findViewById(R.id.name); TextView ageView = (TextView) convertView.findViewById(R.id.age); nameView.setText(name.get(position)); ageView.setText(age.get(position)); //设置监听 nameView.setOnClickListener(listener); ageView.setOnClickListener(listener); return convertView; } class Listener implements OnClickListener{ public void onClick(View v) { TextView view = (TextView) v; switch(v.getId()){ case R.id.name: Toast.makeText(context, view.getText(), 0).show(); break; case R.id.age: Toast.makeText(context, view.getText(), 0).show(); break; } } } }


3.layout document

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" ></ListView> </LinearLayout>

4.ListView每列布局

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:gravity="center" android:textSize="12pt" android:clickable="true" ></TextView> <TextView android:id="@+id/age" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:gravity="center" android:textSize="12pt" android:clickable="true" > </TextView></LinearLayout>

这篇关于ListView 显示两列并添加监听(Button 控件除外)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996826

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。

小程序button控件上下边框的显示和隐藏

问题 想使用button自带的loading图标功能,但又不需要button显示边框线 button控件有一条淡灰色的边框,在控件上了样式 border:none; 无法让button边框隐藏 代码如下: <button class="btn">.btn{border:none; /*一般使用这个就是可以去掉边框了*/} 解决方案 发现button控件有一个伪元素(::after

MFC中Spin Control控件使用,同时数据在Edit Control中显示

实现mfc spin control 上下滚动,只需捕捉spin control 的 UDN_DELTAPOD 消息,如下:  OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) {  LPNMUPDOWN pNMUpDown = reinterpret_cast(pNMHDR);  // TODO: 在此添加控件通知处理程序代码    if

MFC 控件重绘(2) NM_CUSTOMDRAW, WM_DRAWITEM, 虚函数DrawItem

控件重绘有三种方法: 1 设定界面属性 2 利用Windows的消息机制,通过Windows消息映射(Message Mapping)和反映射(Message Reflecting),在合适的时机修改控件的状态和行为。此方式涉及NM_CUSTOMDRAW和WM_DRAWITEM 3 利用虚函数机制,重载虚函数。即DrawItem虚函数。 对于NM_CUSTOMDRAW,某些支持此消息的控件

微信小程序uniappvue3版本-控制tabbar某一个的显示与隐藏

1. 首先在pages.json中配置tabbar信息 2. 在代码根目录下添加 tabBar 代码文件 直接把微信小程序文档里面的四个文件复制到自己项目中就可以了   3. 根据自己的需求更改index.js文件 首先我这里需要判断什么时候隐藏某一个元素,需要引入接口 然后在切换tabbar时,改变tabbar当前点击的元素 import getList from '../