listView中的item经过长按之后会出现复选框

问题描述

listView中的item经过长按之后会出现复选框

就如同图片中那样

解决方案

你可以在数据源中增加一个字段,代表是否显示复选框,长按时,将次标记置为true,然后在getview中判断该标记,处理界面

解决方案二:

package com.example.day01;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnItemClickListener,OnItemLongClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Activity对象包含一个window窗口
//这句代码的含义是将一些view添加到
//activity对应的window窗口上
//这个方法底层的实现?
//1.根据context找到对应的资源文件
//getResources().getLayout(R.layout.activity_main);
//2.底层借助pull解析器解析xml
//3.底层借助反射构建xml中元素的对象
//4.将xml对应的view元素对象添加到activity对应的窗口上
setContentView(R.layout.activity_main);
//1.ListView (View)
ListView lsv=(ListView)
findViewById(R.id.lsv01);
//2.Adapter (ArrayAdapter)
//2.1 Context
Context context=this;
//2.2 item view 对应的资源
//int textViewResourceId=R.layout.list_item_1;
int textViewResourceId=
android.R.layout.simple_list_item_checked;
//2.3 item data
String[] objects={"关羽","张飞","赵云","黄忠","马超"};
ArrayAdapter adapter=
new ArrayAdapter(
context,
textViewResourceId,//item view 的资源文件
objects);
//3.关联Adapter
lsv.setAdapter(adapter);//ListAdapter
//此时当listview在显示数据时,
//底层会调用adapter的getView
//方法获得item
//4.添加监听器
lsv.setOnItemClickListener(this);
//长按事件
lsv.setOnItemLongClickListener(this);
}
/**点击ListView的某个item时会自动回调此方法*/
@Override
public void onItemClick(
AdapterView<?> parent, //ListView
View view,//TextView
int position,
long id) {
Log.i("TAG","parent="+parent);
Log.i("TAG","view="+view);
Log.i("TAG","position="+position);
//在此方法中以toast的形式
//显示点击的item的内容
//1.根据postion获得item对象的内容
String item=(String)
parent.getItemAtPosition(position);
//2.显示
Toast.makeText(this,
item, 0).show();
}
/**长按listView的某个Item时会自动执行此方法*/
@Override
public boolean onItemLongClick(
AdapterView<?> parent,
View view,
int position, long id) {
Toast.makeText(this,"可以多选了",0).show();
//设置ListView的选择模式为多选模式
((ListView)parent).
setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
return true;//返回为true表示事件已处理,后续无需再处理
}
}

解决方案三:

package com.example.day01;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnItemClickListener,OnItemLongClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Activity对象包含一个window窗口
//这句代码的含义是将一些view添加到
//activity对应的window窗口上
//这个方法底层的实现?
//1.根据context找到对应的资源文件
//getResources().getLayout(R.layout.activity_main);
//2.底层借助pull解析器解析xml
//3.底层借助反射构建xml中元素的对象
//4.将xml对应的view元素对象添加到activity对应的窗口上
setContentView(R.layout.activity_main);
//1.ListView (View)
ListView lsv=(ListView)
findViewById(R.id.lsv01);
//2.Adapter (ArrayAdapter)
//2.1 Context
Context context=this;
//2.2 item view 对应的资源
//int textViewResourceId=R.layout.list_item_1;
int textViewResourceId=
android.R.layout.simple_list_item_checked;
//2.3 item data
String[] objects={"关羽","张飞","赵云","黄忠","马超"};
ArrayAdapter adapter=
new ArrayAdapter(
context,
textViewResourceId,//item view 的资源文件
objects);
//3.关联Adapter
lsv.setAdapter(adapter);//ListAdapter
//此时当listview在显示数据时,
//底层会调用adapter的getView
//方法获得item
//4.添加监听器
lsv.setOnItemClickListener(this);
//长按事件
lsv.setOnItemLongClickListener(this);
}
/**点击ListView的某个item时会自动回调此方法*/
@Override
public void onItemClick(
AdapterView<?> parent, //ListView
View view,//TextView
int position,
long id) {
Log.i("TAG","parent="+parent);
Log.i("TAG","view="+view);
Log.i("TAG","position="+position);
//在此方法中以toast的形式
//显示点击的item的内容
//1.根据postion获得item对象的内容
String item=(String)
parent.getItemAtPosition(position);
//2.显示
Toast.makeText(this,
item, 0).show();
}
/**长按listView的某个Item时会自动执行此方法*/
@Override
public boolean onItemLongClick(
AdapterView<?> parent,
View view,
int position, long id) {
Toast.makeText(this,"可以多选了",0).show();
//设置ListView的选择模式为多选模式
((ListView)parent).
setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
return true;//返回为true表示事件已处理,后续无需再处理
}
}

时间: 2024-08-08 01:52:37

listView中的item经过长按之后会出现复选框的相关文章

网易新闻客户端中listview中的item,长按会出现画圆的背景效果,不知道是怎么做的

问题描述 网易新闻客户端中listview中的item,长按会出现画圆的背景效果,不知道是怎么做的 图片我弄不上来,大牛们下一个网易新闻客户端试试看,我做了demo不太理想 我自己做的demo是在oneventtouch()中invalidate():在onDraw()中 以手点击的坐标为圆点画圆,半径不断的增加,但是网易中的item一开始是在手点击的坐标为圆点,之后圆点在不断的移动,到最后画满item的时候圆点正好到中间. 解决方案 listview中的item,长按会出现画圆的背景效果,不知

如何在Excel2010 版中插入复选框

  最关键的是将"开发工具"在菜单栏显现出来. 1.打开EXCEL2010,点击"文件"中的"选项",如下图; 2. 在选项界面中点击"自定义功能区" 3.在"自定义功能区"中点击"开发工具",如下图; 4.在菜单栏出现了"开发工具",在excel中任意一个位置,点击"插入"选择"复选框",可以插入复选框.右击复选框可以对文字及

listview-点击 ListView 中的 item,然后改变行的背景颜色

问题描述 点击 ListView 中的 item,然后改变行的背景颜色 我想使用BaseAdapter 在ListView中显示item.我在BaseAdapter使用下面的代码: @Override public View getView(final int position, View convertView, ViewGroup parent) { //... convertView.setOnTouchListener(new OnTouchListener() { @Override

appwidget中加了listview,怎么让点击listview中的item后跳转到app主页面

问题描述 appwidget中加了listview,怎么让点击listview中的item后跳转到app主页面 android 中的appwidget中加了listview,怎么让点击listview中的item后跳转到app主页面(MainActivity.class) 解决方案 listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?>

Android中屏幕显示listview中的item数量

问题描述 Android中屏幕显示listview中的item数量 求大神告知,我如何获取当前屏幕显示出的listview的item数量呢?每个屏幕大小不一,能显示出的数量也是不一样的,有没有方法能够计算的?? 解决方案 刚才那个方法太笨,还可以调用ListView的setOnScrollListener方法,里头复写了一个onScroll方法,方法中的第二个参数就是当前ListView中可见的item数量.下例子中是visibleItemCount: listView.setOnScrollL

横向滑动-Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突

问题描述 Android中用首字母排序的listview中的item的滑动监听与listview的上下滑动冲突 大神帮看看,我现在listview的item中我写了一个OnTouchListener,但是发现横向滑动的时候老是会触发listview的上下滑动事件,导致横向滑动很难滑出来,但是滑出来第一次后,后面就很容易划出来了!大神帮忙看看!!!感谢! 让人很是苦恼,这个该怎么处理呢?查过资料说改返回值为false,改了都滑不出来! /** * 侧滑显示删除按钮 */ private View.

android-点击listview中的item跳转并获取item中的内容出现的问题

问题描述 点击listview中的item跳转并获取item中的内容出现的问题 一用settext()里面写上title就出错了 打印出来的title desc确实传递到另一个activity了 解决方案 文本数据传递到第二个Activity后,这句话报了空针,那就说明textView为null.你debug一下,看看是否是这个控件没有被实例化;或者你实例化错了控件(同样的id,导入的别的Activity下的) 解决方案二: 明确告诉你空指针了,你调试看看是哪个对象,然后检查是不是key写错了

button 单选-android ListView中的Item有两行Button,要求实现单选效果,应该怎么做呢?

问题描述 android ListView中的Item有两行Button,要求实现单选效果,应该怎么做呢? 就是向这样的Button,在ListView的Item中,如果有两行,要能实现单选效果,应该怎么做呢?麻烦各位大神们说详细点~~ 解决方案 这个不用button,用radiobutton. 解决方案二: 我是在RadioGroup中嵌套了一个LinearLayout,这样就可以显示两行了,那么问题来了,radiogroup不能实现单选了,怎么办啊 解决方案三: 我是在RadioGroup中

android开发 listview-Android中,刷新ListView中的item导致ListView闪烁的解决方法

问题描述 Android中,刷新ListView中的item导致ListView闪烁的解决方法 如题,因为下载列表使用ListView实现的,所以必须实时更新ListView中的数据. 我采用的是Service+BroadcastReceiver的搭配.更新数据 在Activity里面再用notifySetDataChange()的方法对ListView进行动态刷新 但是发现一个很严重的问题.刷新的时候ListView有明显的闪烁. 求解决方法