在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组件使用(实现点击选择)的更多相关文章

  1. Android Listview中Button按钮点击事件冲突解决办法

    今天做项目时,ListView中含有了Button组件,心里一早就知道肯定会有冲突,因为以前就遇到过,并解决过,可惜当时没有记录下来. 今天在做的时候,继续被这个问题郁闷了一把,后来解决后,赶紧来记录 ...

  2. xamarin.android listview绑定数据及点击事件

    前言 listview是用来显示数据列表的一个控件,今天给大家带来如何使用cursor进行数据绑定以及点击事件. 导读 1.如何创建一个listview 2.如何使用cursor进行绑定数据 3.li ...

  3. Android,LIstView中的OnItemClick点击无效的解决办法

    在List_Item布局文件中的根节点加上如下背景标黄的这一行 <?xml version="1.0" encoding="utf-8"?> < ...

  4. 关于Android ListView组件中android:drawSelectorOnTop含义(转载)

    转自:http://yangguangfu.iteye.com/blog/902559 When set to true, the selector will be drawn over the se ...

  5. android listview item取消按点击效果

    设置android:listSelector="#00000000" 即可

  6. Android ListView 子控件点击事件

    android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...

  7. 【转】Android ListView长按事件触发点击事件

    原文网址:http://blog.csdn.net/twlkyao/article/details/17301609 算法在实现ListView的onItemLongClickListener的时候, ...

  8. Android UI组件----ListView列表控件详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  9. Android ListView中Item点击事件失效解决方案

    欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...

随机推荐

  1. 学习Spring-Data-Jpa(九)---注解式方法查询之@NamedQuery、@NamedNativeQuery

    1.@NamedQuery.@NamedNativeQuery @NamedQuery与@NamedNativeQuery都是定义查询的一种形式,@NamedQuery使用的是JPQL,而@Named ...

  2. es4x 使用nodejs 开发vertx 应用框架试用

    es4x 是将vertx 的特性带到nodejs 的开发中,性能很不错,同时开发方式和nodejs 一样,可以加速vertx 应用的开发,同时也可以方便的集成java 软件包,提供的cli 工具也很方 ...

  3. idea开发工具

    IDEA简介 IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境.IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支 ...

  4. Python之文件读写(csv文件,CSV库,Pandas库)

    前言 一.Python文件读取 二.读取CSV文件 一.Python文件读取 1. open函数是内置函数之with操作 - 关于路径设置的问题斜杠设置成D:\\文件夹\\文件或是D:/文件夹/文件 ...

  5. ibatis实现分页查询

    最近在做老项目改造,分享一个之前写的ibatis(这里特指ibatis2.x的版本)分页插件. 大致原理就是通过重写SqlExecutor的executeQuery方法,实现分页查询,支持mysql和 ...

  6. 解决coursera笔记本(ipynb)打不开的问题

    最近在coursera听课,发现notebook打不开,一直显示加载中. 想到了可能被墙,苦于没有梯子.最后F12,发现有报错 Failed to load resource: net::ERR_CO ...

  7. 【Activiti学习之四】Activiti API(三)

    环境 JDK 1.8 MySQL 5.6 Tomcat 7 Eclipse-Luna activiti 6.0 一.启动流程 多种方式启动 package com.wjy.pro; import or ...

  8. 源码编译安装使用glusterfs+heketi安装使用

    注:使用源码安装的原因主要是使用yum安装glusterfs服务端时出现一些依赖库问题 准备3台glusterfs服务器(官方也建议至少3台,防止发生脑裂),并在各个服务器的/etc/hosts下面添 ...

  9. java -- eclipse运行javaweb 项目

    这个是和上一个放在一块的 创建javaweb项目,要是想要创建maven项目,java项目都可以,我要和tomcat放在一块所以 就创建javaweb项目 创建项目起一个有意义的项目名    选择一个 ...

  10. 【leet-code】接雨水

    给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 ...