1. 程式人生 > >listview為不同的item設定不同的點選事件

listview為不同的item設定不同的點選事件

偶爾看見陌陌有這個功能,系統機器人發來不同的內容點選後有不同的響應,如發來的是有新表情可以使用的通知,點選後就進入更新表情頁面;傳送生日祝福語音,就播放聲音,發來的是位置圖片,點選後就跳轉到地圖定位頁面。很久以前沒搞懂怎麼實現,現在想想其實很簡單,總結一下。這跟微信和QQ裡的聊天內容有語音、圖片、文字,點選後能播放語音、檢視大圖,各個item有不同的響應是一個道理。

首先,每條message看做是一個物件,有不同的型別屬性,將每條訊息附帶上這個屬性,然後item的通用click事件裡先獲取這個屬性,然後根據屬性做不同響應。當然也可以根據訊息內容裡是否含有預設的關鍵字來做不同響應,適合系統發出防騙提示之類的。

相關推薦

舉例說明ArrayAdapter的使用和如何設定ListView中每個Item的點事件

首先要先定義一個ListView物件,並進行例項化private ListView mListView; mListView=(ListView)findViewById(R.id.ListView);定義類MyAdapter繼承ArrayAdapterpublic cla

React Native ListViewItem設定事件時null is not an object

先貼下程式碼: <ListView contentContainerStyle = {styles.list}

Android 多個listview監聽item的點事件

如果一個介面包含多個listview,而且需要監聽每個listview的item點選事件,其實只需要在onItemClick方法中  判斷一下即可   @Override     public void onItemClick(Adapte

android listview系列之item的點事件item佈局中的點事件(四)

很多時候listview只顯示簡略資訊,我們需要點選子項去跳轉或在顯示詳細資訊的位置,將相關的詳細資訊顯示出來,listview提供了onItemClickListener()方法,在方法中我們可以執行我們需要的內容。 listview.setOnItem

RecyclerView每個item新增點事件

最終目的模擬ListView的setOnItemClickListener()方法,呼叫者只須呼叫類似於setOnItemClickListener的東西就能獲得被點選item的相關資料。原理為RecyclerView的每個子item設定setOnClickListene

禁用ListView中某些item的點事件

重寫BaseAdapter的兩個方法 @Overridepublic boolean areAllItemsEnabled(){return false;}@Overridepublic boolean isEnabled(int position){if (getIt

listview不同item設定不同的點事件

偶爾看見陌陌有這個功能,系統機器人發來不同的內容點選後有不同的響應,如發來的是有新表情可以使用的通知,點選後就進入更新表情頁面;傳送生日祝福語音,就播放聲音,發來的是位置圖片,點選後就跳轉到地圖定位頁面。很久以前沒搞懂怎麼實現,現在想想其實很簡單,總結一下。這跟微信和QQ裡

android listview裡包含元件(checkbox)點事件Item的點事件衝突

在listview的item中包含有textview和checkBox。我們既想獲取listitem的點選事件,又想獲取listitem中textview的點選事件和listitem中checkBox的點選事件,那麼有沒有辦法實現呢?答案是肯定的,我們只需重新建立listview的介面卡繼承BaseAdpte

canvas繪製的多個圖形設定事件

一、給Canvas元素繫結事件基礎知識 由於事件只能達到Canvas元素這一層,所以,如果想進一步深入,識別點擊發生在Canvas內部的哪一個圖形上,就需要增加程式碼來進行處理。 基本思路是:給Canvas元素繫結事件,當事件發生時,檢查事件物件的位置,然後檢查哪些圖形覆

GridView設定Item的點事件無效的解決方案

背景 介面顯示用到了gridview,然後gridview的item的itemView是一個簡單的Button。當gridview設定完adapter後,接著設定item的點選事件時發現點選item是不能觸發下面的方法。 // gridview的i

listview中給每個item新增點事件

給listview每個item新增點選事件,這個聽起來好像挺迷糊的,在adapter裡面我直接就寫startactivity後來沒成功,為此研究了幾分鐘發現有三種方式實現哈。現在說一下我的解決方法。1、在activit

listview或gridview中item的點事件與控制元件點事件衝突的解決

listview中item的點選事件與控制元件點選事件衝突的解決: 遇到的問題:listview條目點選事件無法處理事件。listview裡的控制元件搶先收到了事件。 方式1:設定包含所有控制元件的父view的 descendantFocusability

ListViewitem的點事件和長按事件

mAdapter = new MyCollectAdapter(this, myCollects,mImageLoad.getImageLoadingListener(), mImageLoad.getOptions()); mPullRefreshList

Fragment中ListViewItem的點事件(包含Item內部控制元件的點事件

程式碼記錄在部落格上,分享給想我一樣的菜鳥們,自己忘了的時候也可以拿來看看,免得到處找程式碼: Fragment中ListView的程式碼 package com.example.administrator.myapplication14.Fragmen

Android-ListView中巢狀(ListView)控制元件時item的點事件不起作用的問題

解決:1、在主listview佈局檔案中的listview中新增屬性 android:focusable="false"              2、在子listview中最頂上的佈局檔案新增屬性

Listview裡包含元件(checkbox)點事件Item的點事件衝突

今天在寫了個小需求,ListView裡包含checkbox,點選ListView的item時要求將item的內容顯示在一個TextView中(TextView不包含在item中),並同時改變checkbox的checked狀態。 程式碼很簡單,只是一開始並沒有意識到List

ListViewItem的點事件Item中控制元件的點事件並存的方法

在ListView的item的xml配置檔案的根節點新增屬性: android:descendantFocusability="blocksDescendants" 並且在要新增事件的子控制元件(如button)的屬性裡新增 andro

RecyclerView自行新增item的點事件

RecyclerView側重的是佈局的靈活性,雖說可以替代ListView但是連基本的點選事件都沒有,這篇文章就來詳細講解一下如何為RecyclerView的item新增點選事件,順帶也複習一下觀察者模式。 最終目的: 模擬ListView的setOnItemClickLi

element-ui 下拉el-dropdown-item新增點事件@click無效怎麼回事

<el-dropdown trigger="click" v-if="hasPower('120303')||hasPower('120304')">              &

Button設定事件的四種方式

Button的點選事件可以有好多種你知道麼? 第一種(匿名內部類): private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { supe