Android-----ListView组件使用(实现点击选择)
2024-08-31 23:18:20
在Android中的ListView选单组件,是以下列表方式来列出选项,供用户选择。
ListView组件属性设置:
创建spinner组件时,只需要设置一项entries属性即可使用。此属性是设置要放在列表中的文字内容,不可以像text View的text属性那样直接指定字符串,是必须先在value/string.xml中创建字符串数组,再将数组名指定给entri属性,当程序执行时就会列出数组内容。举个简单的例子:
string.xml数组如下
<string-array name="habit">
<item>晨跑</item>
<item>健身</item>
<item>爬山</item>
<item>游泳</item>
<item>篮球</item>
<item>足球</item>
</string-array>
布局文件代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.hs.example.exampleapplication.ListViewActivity"> <TextView
android:id="@+id/select"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="25sp"
android:text="请选择你喜欢的运动!"/> <ListView
android:id="@+id/lv_sele"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/habit"> </ListView> </LinearLayout>
逻辑处理代码如下:
public class ListViewActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{ ListView listV ;
ArrayList<String> selected = new ArrayList<>(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview); listV = this.findViewById(R.id.lv_sele);
listV.setOnItemClickListener(this);
} @Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
TextView textView = (TextView) view; //被点击的view对象转换成textView对象
String item = textView.getText().toString();//获取选中的文字
if(selected.contains(item)){ //如果集合中已经有该选项,再次点击则删除
selected.remove(item);
}else{ //否则就添加进去
selected.add(item);
}
String msg ;
if(selected.size()>){
msg = "你喜欢的运动有:";
for(String str : selected){ //遍历数组中的选项,转换成字符串添加到msg中
msg += str.toString() + " | ";
}
}else{
msg = "请选择你喜欢的运动!";
}
TextView msgText = this.findViewById(R.id.select);
msgText.setText(msg);
}
}
运行效果如下图:
最新文章
- MFC AfxMessageBox默认标题修改
- JAVA面试逻辑题1
- SVN集中式版本控制器的安装、使用与常见问题汇总
- adapter.notifyDataSetChanged(); 没有反应
- .NET4.0 __doPostBack未定义
- 笨方法学python--安装和准备
- 程序设计中的数学思维函数总结(代码以C#为例)
- 关于SCSI/SATA/IDE硬盘的比较
- 201521123007《Java程序设计》第5周学习总结
- Working with Python subprocess - Shells, Processes, Streams, Pipes, Redirects
- vue打包后不使用服务器直接访问方法
- 对于多线程下Servlet以及Session的一些理解
- Android必知必会-Android Studio修改包名
- C#UDP广域网,局域网通信-原理分析
- Linux启动流程和脚本服务-6
- Python基础理论 - 常用模块
- Rsync + Sersync 实现数据增量同步
- django中的时区设置TIME_ZONE,USE_TZ
- webElement.text()获取到内容为空
- Nginx 为 Golang 配置 web 服务
热门文章
- ZJOI2019赛季回顾
- c# 关于反射
- rpm 子包创建学习
- 浅谈C/C++回调函数(Callback)&; 函数指针
- python基础_格式化输出(%用法和format用法)(转载)
- Linux终端图形库编程
- 虚方法(virtual)\抽象方法(abstract)\接口(interface)的区别
- 解析node-cors模块
- Java 并发系列之二:java 并发机制的底层实现原理
- [Gamma阶段]测试报告