`
luckliu521
  • 浏览: 260859 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android处理ListView的条目长按事件

阅读更多
Android处理ListView的条目长按事件
Android, 条目, ListView
ListActivity和ListView是很常用的组件,用来制作列表形式的用户界面。本文介绍如何正确处理ListView中的条目短按和长按事件,他们的处理方式是不同的。

对于短按事件,处理起来比较简单,我们只需要覆盖ListActivity的onListItemClick()方法,如下所示:

@Override
protected void onListItemClick(ListView arg0, View arg1, int arg2, long arg3) {
  CharSequence s = ((TextView)arg1).getText();
  Log.e("CallLogActivity",s+ " is clicked");
  super.onListItemClick(arg0, arg1, arg2, arg3);
}

对于长按事件,我们需要给listview注册一个OnItemLongClickListener,并实现Listener中定义的方法,如下所示:

  getListView().setOnItemLongClickListener(this);//注册

public boolean onItemLongClick(AdapterView parent, View view, int position,
   long id) {
  Log.e("CallLogActivity", view.toString() + "position=" + position);
  CharSequence number = ((TextView) view).getText();
  Toast t = Toast.makeText(this, number + " is long clicked",
    Toast.LENGTH_LONG);
  t.show();
  return true;
}

我们使用前面介绍的CallLog的演示例子来演示一下如何实现这两种事件,完整的代码如下所示:

package com.me;

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.CallLog;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemLongClickListener;

public class CallLogActivity extends ListActivity implements
  OnItemLongClickListener {

@Override
protected void onCreate(Bundle arg0) {
  super.onCreate(arg0);
  setContentView(R.layout.main);
  Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI,
    null, null, null, CallLog.Calls.DEFAULT_SORT_ORDER);
  startManagingCursor(cursor);
  SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    android.R.layout.simple_list_item_1, cursor,
    new String[] { CallLog.Calls.NUMBER },
    new int[] { android.R.id.text1 });
  getListView().setOnItemLongClickListener(this);
  setListAdapter(adapter);
}

public boolean onItemLongClick(AdapterView parent, View view, int position,
   long id) {
  Log.e("CallLogActivity", view.toString() + "position=" + position);
  CharSequence number = ((TextView) view).getText();
  Toast t = Toast.makeText(this, number + " is long clicked",
    Toast.LENGTH_LONG);
  t.show();
  return true;
}

@Override
protected void onListItemClick(ListView arg0, View arg1, int arg2, long arg3) {
  CharSequence s = ((TextView)arg1).getText();
  Log.e("CallLogActivity",s+ " is clicked");
  super.onListItemClick(arg0, arg1, arg2, arg3);
}
}
分享到:
评论
1 楼 kopui 2012-02-29  
       

相关推荐

    安卓listview相关相关-AndroidListView实现长按Item弹出CheckBox和操作界面进行批量删除功能模仿某播放器.rar

    总的来说,这个项目涵盖了Android开发中`ListView`的自定义适配器、长按事件处理、UI交互设计以及批量操作等核心知识点。开发者可以通过学习这个项目,掌握如何在实际应用中实现类似的功能。同时,对于初学者,这是...

    ListView长按显示菜单

    // 表示已处理长按事件 } }); ``` 3. **创建上下文菜单**: 在Activity中,重写`onCreateContextMenu()`方法,定义上下文菜单的菜单项和对应的回调: ```java @Override public void onCreateContextMenu...

    ListView例子长按出子菜单

    这个“ListView例子长按出子菜单”示例是关于如何为ListView中的每个条目添加长按事件,以弹出上下文相关的子菜单。这个功能对于提高用户体验非常有用,因为它提供了与列表项进行交互的更多方式。 首先,我们需要...

    长按listview的条目,点击删除

    1. **ListView长按事件处理**: 在Android中,我们可以使用`OnItemLongClickListener`接口来监听ListView中的长按事件。你需要在ListView对象上设置这个监听器,并实现`onItemLongClick()`方法。当用户在ListView的...

    Android ListView长按弹出菜单二种实现方式示例

    * 知识点1:ListView item:两种长按弹出菜单方式* 知识点2:ListView SimpleAdapter的使用* 知识点 3:在java代码中创建一个ListView*/ public class ListOnLongClickActivity extends Activity { private ...

    listview长按多选删除仿网易彩票

    1. **长按事件处理**: 在ListView中,我们首先需要监听长按事件。这通常通过在ListView的Adapter中为每个列表项设置一个`OnItemLongClickListener`来实现。当用户长按某个列表项时,该监听器会被触发,我们可以在...

    Android中RecyclerView的长按删除

    对于长按事件,我们需要使用`setOnLongClickListener`。当用户长按时,显示一个对话框询问用户是否确认删除。这可以通过创建一个AlertDialog.Builder来实现: ```java holder.itemView.setOnLongClickListener(new ...

    Android使用popwindow弹窗显示listview表格

    // 处理ListView滑动事件,用于在滑动时隐藏PopupWindow listView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState)...

    list点击长按事件

    长按事件在Android中通常通过setOnItemLongClickListener()来实现,用于处理用户长时间按下ListView项的情况: ```java listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @...

    ListView实现分组显示item上下和长按拖拽移动和添加和删除功能

    总之,实现ListView的这些高级功能需要对Android的触摸事件处理、数据绑定和视图更新机制有深入理解。通过自定义Adapter和监听触摸事件,我们可以实现丰富的交互效果。如果遇到复杂需求,可以考虑使用已有的开源解决...

    android多选ListView示例

    综上所述,创建一个多选ListView涉及设置ChoiceMode、维护选中状态、处理用户点击事件、提供视觉反馈以及在状态改变时保存和恢复。通过这个示例,开发者可以了解如何在Android应用中实现一个功能完整的多选ListView...

    左滑删除的ListView

    "左滑删除的ListView"是一个增强版的ListView,它增加了滑动手势来实现条目的删除功能,大大提升了用户体验。 在Android中实现左滑删除功能,主要涉及以下知识点: 1. **SwipeRefreshLayout**:虽然这个标题没有...

    Android 多条目LIstView源码

    本资源“Android 多条目ListView源码”提供的`base-adapter-helper-master`是一个辅助库,旨在简化ListView的适配器操作,帮助开发者更高效地处理多条目列表的显示。 ListView的核心在于Adapter,它是一个桥梁,...

    Android 点击listview弹出popupwindow弹出框

    `OnItemLongClickListener`则用于监听长按事件,触发右滑删除的逻辑。 在`ListView`的适配器中,我们需要为每一项添加一个触摸监听器,通过滑动手势检测器(如`GestureDetector`)来判断用户的滑动行为。当检测到向...

    android arraylist 实现 listview

    总结来说,实现"android arraylist 实现 listview"需要掌握ArrayList的使用,自定义Adapter的设计,Activity间数据传递,以及ListView的交互功能扩展,包括ContextMenu、OptionsMenu和长按事件的处理。这不仅涉及到...

    实现对ListView的多选、长按和删除

    5. **长按事件**:为了实现长按操作,需要为ListView设置OnItemLongClickListener。当用户在列表项上长按时,触发监听器,可以弹出一个上下文菜单(ContextMenu)或者执行特定的操作,如删除单个条目。 6. **上下文...

    ListView和Button点击事件冲突处理

    3. **使用ItemClick和ItemLongClick事件**:如果Button的点击事件是作为ListView条目的一个特殊操作,可以考虑将它整合到ListView的ItemClickListener或ItemLongClickListener中。通过判断点击位置来确定是否执行...

    Android 自定义ListView + Gallery 组合

    3. **监听器(ListView监听事件)**:可以设置OnItemClickListener和OnItemLongClickListener,监听用户的点击和长按事件,实现相应的功能。 4. **头部和底部视图(Header and Footer)**:通过`addHeaderView()`和`...

    android的listView实例

    这些监听器提供了方法来处理单击和长按事件。 8. **Header和Footer** ListView还支持添加头部和尾部视图,这可以通过addHeaderView()和addFooterView()方法实现。 9. **ListView优化** - 使用ViewHolder模式来...

Global site tag (gtag.js) - Google Analytics