- 浏览: 5818536 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
不用说了,上图先:
这里要实现点击ListView里面的一个控件而不是选中一行。
最好重写Adapter,而不要使用其自带的SimpleAdapter,否则该子控件的事件就不那么好处理了!
一定哪里搞错了,我从项目里抠出来的代码,这个问题应该好解决,你自己试着解决下。
import java.util.ArrayList; import com.ql.adapter.DeletableAdapter; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ListView; public class Test_4_Activity extends Activity { private DeletableAdapter adapter; private ArrayList<String> text; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test4); ListView list_view = (ListView) findViewById(R.id.list_view); text = new ArrayList<String>(); text.add("111"); text.add("222"); text.add("333"); text.add("444"); // 初始化数据结束 adapter = new DeletableAdapter(this, text); list_view.setAdapter(adapter); // list_view.setSelector(R.drawable.list_select_color); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub text.add("10000"); adapter.notifyDataSetChanged(); } }); } }
import java.util.ArrayList; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.ql.activity.R; public class DeletableAdapter extends BaseAdapter{ private Context context; private ArrayList<String> text; public DeletableAdapter(Context context,ArrayList<String> text){ this.context = context; this.text=text; } @Override public int getCount() { // TODO Auto-generated method stub return text.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return text.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub final int index=position; View view=convertView; if(view==null){ LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view=inflater.inflate(R.layout.row_simple_list_item_2, null); } final TextView textView=(TextView)view.findViewById(R.id.simple_item_1); textView.setText(text.get(position)); final ImageView imageView=(ImageView)view.findViewById(R.id.simple_item_2); imageView.setBackgroundResource(android.R.drawable.ic_delete); imageView.setTag(position); imageView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub text.remove(index); notifyDataSetChanged(); Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show(); } }); return view; } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageView android:id="@+id/simple_item_2" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:focusable="false" /> <TextView android:id="@+id/simple_item_1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" /> </RelativeLayout>
这里要实现点击ListView里面的一个控件而不是选中一行。
最好重写Adapter,而不要使用其自带的SimpleAdapter,否则该子控件的事件就不那么好处理了!
评论
4 楼
qianguming
2013-12-20
如何在删除的时候提醒呢
3 楼
280541736
2012-04-26
这种问题也太普遍了吧,用hanlder实现主UI线程的更新,不能在其他线程中对主UI线程更新。
2 楼
gundumw100
2011-11-19
bigboy 写道
兄台 你这样的做法测试过么 ?
至少这个
public void onClick(View v) {
55. // TODO Auto-generated method stub
56. text.remove(index);
57. notifyDataSetChanged();
58. Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show();
59. }
就会报错 !
Only the original thread that created a view hierarchy can touch its views.
至少这个
public void onClick(View v) {
55. // TODO Auto-generated method stub
56. text.remove(index);
57. notifyDataSetChanged();
58. Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show();
59. }
就会报错 !
Only the original thread that created a view hierarchy can touch its views.
一定哪里搞错了,我从项目里抠出来的代码,这个问题应该好解决,你自己试着解决下。
1 楼
bigboy
2011-11-19
兄台 你这样的做法测试过么 ?
至少这个
public void onClick(View v) {
55. // TODO Auto-generated method stub
56. text.remove(index);
57. notifyDataSetChanged();
58. Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show();
59. }
就会报错 !
Only the original thread that created a view hierarchy can touch its views.
至少这个
public void onClick(View v) {
55. // TODO Auto-generated method stub
56. text.remove(index);
57. notifyDataSetChanged();
58. Toast.makeText(context, textView.getText().toString(), Toast.LENGTH_SHORT).show();
59. }
就会报错 !
Only the original thread that created a view hierarchy can touch its views.
发表评论
-
http://www.android-studio.org/
2018-08-06 09:25 0http://www.android-studio.org/ ... -
SlidingDrawer源码
2012-03-14 10:13 3804我把SlidingDrawer源码提了出来,希望对1.5的朋友 ... -
简单拖动效果(带Cache,需要完善)
2011-10-13 15:10 4226如何去实现一个具有幻象的拖拽效果? 所谓”幻象“就是当你按下去 ... -
Android Activity中启动另一应用程序的方法,无需得到类名
2011-08-02 14:46 17256在网上搜索了一会相关的实现代码,发现所有的文章都说是需要包名和 ... -
java-universal-tween-engine,一个动画系统库
2011-06-29 09:21 6742http://code.google.com/p/java-u ... -
网上发现的一个android UI包
2011-05-24 12:21 4089里面有些UI和效果 -
android中使用代码启动其他程序
2011-04-29 23:15 5280你要訪問其他的程序,那麼這個程序要先裝載到模擬器或真機上面,因 ... -
listView背景问题以及限制editText字数以及如果想通知别人已经不能在写
2011-04-29 22:44 32031.在listView设置好背景之后 你如果点击空白出 你会发 ... -
Android键盘和触摸事件处理
2011-04-29 22:32 7003activity和VIEW都能接收触摸和按键,如果响应事件只需 ... -
Android的绘制文本对象FontMetrics的介绍及绘制文本
2011-04-29 22:29 11488一。Android绘制文本对象FontMetrics介绍 ... -
Android View 拖动&插入
2011-04-29 22:20 3543View 拖动&插入 即: 支持 拖动图标 然后 ... -
使TextView文本可以水平和垂直滚动
2011-04-29 21:59 14425在做一个小的电子书程序,要求电子书具有放大缩小的功能,所以肯定 ... -
ArrayAdapter源码
2011-04-29 12:29 6297看看人家怎么写的。 /* * Copyright (C ... -
Android下获取开机时间
2011-04-02 21:51 6222找了一圈没发现能得到开机启动时间资料,于是乎突发奇想,得到了解 ... -
AutoCompleteTextView连接到数据库
2011-03-30 20:49 4724AutoCompleteTextView可以根据输入 ... -
改变屏幕Brightness(亮度)
2011-03-30 12:48 4601http://www.eoeandroid.com/forum ... -
android 拖拽图片&拖动浮动按钮到处跑
2011-02-24 20:55 31768来自老外: import android.app.Acti ... -
拖动一个控件在另一个控件(layout)上,并固定位置在几个位置显示
2011-02-24 20:51 5893实现效果: 鼠标拖动btn SSS,SSS在水平的layo ... -
Handler与Message类,实现n秒后无操作自动消失功能
2011-02-24 20:45 4634实现功能:某控件不操作10秒后,自动消失。如照相机变焦条出现后 ... -
android3.0之Action Bar基础
2011-02-22 17:12 6828http://www.android123.com.cn/an ...
相关推荐
本篇文章将详细讲解如何实现ListView中Item的左滑动显示删除按钮。 首先,我们需要一个自定义的ListView,这通常通过继承ListView类并重写其onTouchEvent()方法来实现。在这个方法中,我们可以监听用户的滑动操作。...
总的来说,实现“左滑显示删除按钮,点击按钮删除ListView的item条目”的功能,涉及到Android手势识别、自定义布局、动画处理、数据操作等多个方面。开发者需要熟练掌握Android SDK,理解ListView的工作原理,以及...
为了增强用户体验和交互性,我们常常会在ListView的每一项(Item)中添加按钮。这样,用户可以通过点击按钮来执行特定的操作,如查看详情、删除条目等。本教程将详细介绍如何在ListView中添加按钮并实现监听事件。 ...
滑动删除的核心在于监听ListView的滚动事件,当用户滑动某一行时,显示该行的删除按钮,滑动结束或离开该行时隐藏按钮。这一过程通常通过自定义适配器(Adapter)和滑动监听器(SwipeListener)来实现。 二、实现...
标题提到的"ListView的item水平滑动(类QQ的左滑显示删除按钮)"就是这样一个功能,它允许用户通过水平滑动ListView的每一项来触发额外的操作,例如显示删除按钮。 实现这个功能的核心在于自定义一个Adapter,这是...
`带左滑出现删除按钮的ListView` 是一种常见的交互设计,用户可以通过向左滑动列表项来显示一个或多个操作按钮,比如“删除”按钮,提高用户体验。下面将详细解释如何实现这个功能。 首先,我们需要了解ListView的...
首先,我们需要在ListView的每个条目上添加一个删除按钮。这可以通过自定义ListView的Adapter来完成。在Adapter的getView()方法中,为每一项创建一个包含删除按钮的视图布局,并设置一个点击监听器。例如,你可以...
在很多应用中,为了提供更丰富的用户体验,开发者会为ListView添加一些交互性更强的功能,比如侧滑出现删除按钮。这个功能可以让用户轻松地对列表中的条目进行操作,比如删除、标记等,而无需进入详情页或执行其他...
"ListView 仿QQ微信侧滑出现删除按钮"这个主题涉及到的是如何实现一个类似QQ和微信聊天界面中,通过侧滑列表项来显示删除或其他操作的功能。这种交互设计不仅提高了用户体验,也使得操作更加直观。下面将详细讲解...
我们可以使用Android的GestureDetector和Scroller类来处理滑动手势,然后通过改变View的布局参数来显示或隐藏删除按钮。 1. 创建自定义ListView项布局: 创建一个包含主内容和隐藏删除按钮的布局文件,例如`list_...
在Android开发中,模拟微信Listview左滑出现删除按钮是一种常见的交互设计,它增强了用户界面的易用性和可操作性。这个功能的核心是利用SwipeRefreshLayout和ListView或RecyclerView结合实现的,接下来我们将深入...
点击删除按钮后,需要执行相应的操作,例如删除数据源中的对应项,并更新ListView。为了防止在滑动过程中误触,通常会在用户停止滑动后才激活删除按钮。 5. **状态保存与恢复**: 在ListView滚动时,需要确保滑动...
"Android ListView 仿微信侧滑删除"这个主题涉及到如何实现类似微信中常见的侧滑菜单功能,即用户在ListView的每一项上向左滑动时,会显示出一个包含删除按钮的视图,允许用户快速删除列表中的某一项。下面我们将...
标题提到的"ListView左滑弹出删除按钮完美版"正是针对这个需求进行的优化,旨在解决在滑动过程中可能出现的显示异常问题。 在标准的ListView中,为了实现左滑删除效果,通常需要自定义Adapter并扩展AbsListView的...
3. **动态改变视图**:当检测到左滑手势时,通过改变列表项的布局参数或者使用TranslationX属性,让删除按钮或提示逐渐显现。可以使用Animation或者ObjectAnimator来实现平滑的动画效果。 4. **事件处理**:为显示...
1. **自定义View**: 首先,我们需要创建一个自定义的ListView条目布局,这个布局包含了一个可隐藏的删除按钮。通常使用XML来定义布局,包含一个TextView用于显示数据,以及一个ImageView作为删除按钮,初始设置为不...
本项目"listview侧滑出现删除按钮,仿ios侧滑删除"就是针对这种需求设计的,它允许用户通过在ListView的每一项上侧滑来显示删除按钮,从而实现快速删除功能,而无需更改原有的框架或Adapter,这对于已有的老项目来说...
首先,为ListView添加删除按钮,可以创建一个模板列并在其中放置Button控件: ```xml ``` 这里,`DeleteCommand`是一个依赖属性或ViewModel中的命令,当点击按钮时执行删除操作: ```csharp public ...
Swipemenulistview库提供了便捷的方法来添加滑动手势,并且可以自定义滑动时显示的删除按钮或者其他操作指示。 实现滑动删除的基本步骤包括: 1. **集成库**: 首先,你需要在项目中引入Swipemenulistview库。这...
标题"listview 左滑弹出删除按钮,需要折腾一下"表明我们要实现一个功能,即当用户向左滑动ListView中的条目时,会显示一个删除按钮,用户点击后可以删除该条目。这个功能在许多应用中很常见,比如邮件应用中的邮件...