Android-----ListView组件使用(实现点击选择)
在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);
}
}
运行效果如下图:
Android-----ListView组件使用(实现点击选择)的更多相关文章
- Android Listview中Button按钮点击事件冲突解决办法
今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...
- xamarin.android listview绑定数据及点击事件
前言 listview是用来显示数据列表的一个控件,今天给大家带来如何使用cursor进行数据绑定以及点击事件. 导读 1.如何创建一个listview 2.如何使用cursor进行绑定数据 3.li ...
- Android,LIstView中的OnItemClick点击无效的解决办法
在List_Item布局文件中的根节点加上如下背景标黄的这一行 <?xml version="1.0" encoding="utf-8"?> < ...
- 关于Android ListView组件中android:drawSelectorOnTop含义(转载)
转自:http://yangguangfu.iteye.com/blog/902559 When set to true, the selector will be drawn over the se ...
- android listview item取消按点击效果
设置android:listSelector="#00000000" 即可
- Android ListView 子控件点击事件
android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...
- 【转】Android ListView长按事件触发点击事件
原文网址:http://blog.csdn.net/twlkyao/article/details/17301609 算法在实现ListView的onItemLongClickListener的时候, ...
- Android UI组件----ListView列表控件详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android ListView中Item点击事件失效解决方案
欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...
随机推荐
- serialize()和new FormData()的区别
serialize()和FormData对象都可将表单数据序列化,后通过ajax异步提交 ,序列化表单就是将form表单中所有name属性序列化成KEY-VALUE的形式,提交到后台,后台以对象相应的 ...
- python requests 上传excel数据流
headers=self.headers #获取导入模版 file_home = self.import_template log.info(file_home) wb = load_workbook ...
- Chrome崩溃的解决办法
前两天Win10 更新的安全组件,第二天上班来就打开不了Chrome了,打开就是:噢哟,崩溃了! 那是连 setting 页都打不开的啊...好晕,好晕. 我是真的有点崩溃啊,在网上找了好久,什么与百 ...
- spring boot 启动遇到报错:Failed to configure a DataSource
spring boot 启动遇到报错,具体如下 Description: Failed to configure a DataSource: 'url' attribute is not speci ...
- rent a apartment
今日焦点 month-to-month 按月 6-month minimum 至少六个月 sublease 转租 drenched in sunlight 阳光充足的 词汇实践 I am lookin ...
- JavaScript如何实现日期的前一天后一天转变
1.生成时间 var data =new Date(); 2.获得时间戳 什么是时间戳? 时间戳是指格林威治时间自1970年1月1日(00:00:00 GTM)至当前时间的总秒数.它也被称为U ...
- linux_FHS初遇--良好清晰条理的文件存储习惯
1. 建议根目录(/)所在分区理论上越小越好,原因一为保证性能,二为易恢复与操作. 2.建议应用程序安装软件不要与根目录放在同一个分区内 3. 建议根目录(/)下应该存在的子目录: /bin 放置在单 ...
- Docker学习-从无知到有知的学习过程
Docker学习 最近被别人提到的docker吸引到了注意力,所以打算先快速的了解一下docker到底是个上面东西. 之所以我写下这个文档呢,是为了记录对docker一无所知我是如何进行学习一门新技术 ...
- JavaSE 面试题: 方法的参数传递机制
JavaSE 面试题 方法的参数传递机制 import java.util.Arrays; public class Test { public static void main(String[] a ...
- Controller如何进行重定向跳转
因为在Controller的返回都是默认走视图解析器的InternalResourceViewResolver,而视图解析器都是进行请求转发,需要在返回时地址前加入字符redirect: 视图解析器不 ...