</pre> 要在listview的item上实现控件的点击事件,需要专门去写一个adapter类去继承onClickListener,再在主类里去具体的写onClick方法里的内容。<p></p><p> textView的部分文本点击事件需要对使用这个类SpannableString,其中setSpan方法可以对textView中的部分文本进行处理,包括点击事件,颜色样式等。</p><p> 在开始的时候我认为这两个点击事件会冲突,但最后证明是不影响的。</p><p><pre name="code" class="java">public class ContentAdapter extends BaseAdapter implements OnClickListener{
private List<String> mContentList;
private LayoutInflater mInflater;
private Callback mcallback;
public interface Callback //这个接口必须写,主类必须实现这个
public void click(View v);
public ContentAdapter(Context context, List<String> contentList,
Callback callback) {
mContentList = contentList;
mInflater = LayoutInflater.from(context);
mcallback = callback;
要在listview的item上实现控件的点击事件,需要专门去写一个adapter类去继承onClickListener,再在主类里去具体的写onClick方法里的内容。 textView的部分文本点击事件需要对使用这个类SpannableString,其中setSpan方法可以对textView中的部分文本进行处理,包括点击事件,颜色样式等。 在开始的时候我认为这两个点击事件会冲突,但最
现在
listview
里面的
textview
默认是不会获取焦点的,
但是现在
textview
都要设置一个属性,要不有警告,
就是这个:android:textIsSelectable="true"的话就会获取焦点,
android:textIsSelectable="false"的话就不会获取焦点了,
或者就不加这个属性就行了。
android:focusable="false"这个属性不
book_item.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="m
adapter
中
:
private AttendanceListClickListener listener;
public interface AttendanceListClickListener {
public void onRejectButtonClick(int position);
public void onAgreeButtonClick(int position);
在使用
ListView
的时候,我们通常会使用到其item的点
击
事件
。而有些时候我们可能会用到item内部控件的点
击
操作,比如在item内部有个Button,当点
击
该Button时,删除所在的item。效果图如下图所示
「Talk is cheap. Show me the code」怎么实现这个操作呢?先来看下代码:
先看布局文件activity_main.xml
只有一个
ListView
<?
在本篇博客之前,我简单介绍过
ListView
的基本使用,此篇主要总结一下常用的
ListView
的点
击
事件
,使用MVP模式设计,
首先,先创建一个名为
ListView
Click的项目,
在第一页使用
listView
展示点
击
事件
的种类:写在
ListView
的点
击
事件
,写在Adapter的点
击
事件
,写在item控件的点
击
事件
在安卓
中
,如果
ListView
中
没有数据,可以设置一个空布局来显示一些提示信息,比如“暂无数据”等。可以通过以下几个步骤来实现:
1. 在XML文件
中
定义
ListView
和空布局。例如:
```xml
<
ListView
android:id="@+id/
listView
"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<
TextView
android:id="@+id/emptyView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="暂无数据"
android:gravity="center"/>
2. 在Activity或Fragment
中
找到
ListView
,并设置其空布局。例如:
```java
ListView
listView
= findViewById(R.id.
listView
);
TextView
emptyView = findViewById(R.id.emptyView);
listView
.setEmptyView(emptyView);
这样,当
ListView
中
没有数据时,就会显示空布局
中
的内容。注意,如果要在
ListView
中
显示数据,需要先设置
ListView
的Adapter。