Android之ListView包含RadioButton的單選問題解決辦法
1.最簡潔的解決辦法。
adapter裡儲存當前選中的位置變數,getView方法裡,禁用radiobutton的點選事件,只通過listview的onItemClick事件設定選中位置變數,並且通過notifyDataSetChanged重新整理列表。getView方法裡當前項位置為選中項時設定radiobutton為選中狀態。否則為未選中狀態。通過adapter.getSelectedItem方法獲取當前選中項資料。
注意:本來想著讓阻塞radiobutton的獲取焦點、獲取點選事件,試了各種設定,最後發現rb_status.setClickable(false);禁用radiobutton的點選事件是有效的。
lv_opt.setAdapter(adapter);
lv_opt.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
adapter.setSelectedIndex(position);
}
});
public class AdapterOptionList extends BaseAdapter<OptionItem> { public AdapterOptionList(Context context, List<OptionItem> list) { super(context, list); } /** <span style="white-space:pre"> </span> * 設定選中的專案 <span style="white-space:pre"> </span> * <span style="white-space:pre"> </span> * @param position <span style="white-space:pre"> </span> */ <span style="white-space:pre"> </span>public void setSelectedIndex(int position) { <span style="white-space:pre"> </span>this.selectedIndex = position; <span style="white-space:pre"> </span>notifyDataSetChanged(); <span style="white-space:pre"> </span>} @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (null == convertView) { viewHolder = new ViewHolder(); LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate(R.layout.item_opt,null); viewHolder.rb_status = (RadioButton) convertView .findViewById(R.id.rb_status); viewHolder.tv_title_opt = (TextView) convertView .findViewById(R.id.tv_title_opt); viewHolder.tv_opt_detail = (TextView) convertView .findViewById(R.id.tv_opt_detail); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.rb_status.setClickable(false); OptionItem opt = list.get(position); if(selectedIndex == position){ viewHolder.rb_status.setChecked(true); opt.setSeletedStatus(true); }else{ viewHolder.rb_status.setChecked(false); opt.setSeletedStatus(false); } viewHolder.tv_title_opt.setText(opt.getName()); viewHolder.tv_opt_detail.setText(opt.getDiscription()); return convertView; } class ViewHolder { RadioButton rb_status; TextView tv_title_opt; TextView tv_opt_detail; } }
2.最簡單粗暴的辦法。
adapter裡設定每一個radiobutton的狀態集合變數,在radiobutton的setOnCheckedChangeListener方法裡設定集合裡的每個radiobutton狀態,然後通過notifyDataSetChanged重新整理列表。
比如http://blog.csdn.net/checkin001/article/details/11519131
相關推薦
Android之ListView包含RadioButton的單選問題解決辦法
1.最簡潔的解決辦法。 adapter裡儲存當前選中的位置變數,getView方法裡,禁用radiobutton的點選事件,只通過listview的onItemClick事件設定選中位置變數,並且通過notifyDataSetChanged重新整理列表。getView方法裡
android之ListView多次呼叫getView解決辦法
前言 最近遇到一個bug,寫了一個簡單的listview,不過listview的條目內含的控制元件較多(且控制元件的狀態即顯隱狀態也比較複雜),結果就導致了,一個bug,例如我的item只有3個,但是getView居然被呼叫了幾十次。實在是驚人的很。這也間接導
Android控制元件:RadioButton(單選按鈕)
首先,在佈局檔案 activity_main.xml中註冊一個RadioGroup,併為RadioGroup設定監聽,圖中兩個RadioButton為一個RadioGroup。 activity_main.xml <LinearLayout xmlns:and
android 之RadioButton單選控制元件
示例程式碼:前端程式碼:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schem
IOS開源專案(2)之RadioButton單選控制元件學習
1 前言 眾所周知在IOS中沒有單選按鈕這一控制元件,今天我們來學習一下簡單的單選控制元件。類似與Web中的radio表單元素。 2 詳述 本控制元件單純的利用按鈕控制元件和NSObject的respondsToSelector方法來判斷某一個類中是否存在某方法。 程式碼概
Android開發技巧——自定義單選或多選的ListView
這篇其實應該是屬於寫自定義單選或多選的ListView的基礎教程,無奈目前許多人對此的實現大多都繞了遠路,反而使得這正規的寫法倒顯得有些技巧性了。 本文原創,轉載請註明在CSDN上的出處: http://blog.csdn.net/maosidiaoxian/article
android之listview點選item展開內容
本文轉載自: http://blog.csdn.net/baidu_nod/article/details/38610749 import java.util.ArrayList; import android.app.Activity; import and
RadioButton(單選按鈕)
horizon group get radio andro bsp edr 布局 按鈕 RadioGroup(單選按鈕組): android:orientation="horizontal" //設置布局方式 android:checkedButton="單選按鈕i
Android之ListView的getItemViewType和getViewTypeCount
ldr get 思路 pre 簡單 erl 他會 add item PS:感覺這兩個方法其實還是很容易理解的,也算是給我其他兩個朋友寫的吧,幫他們搞清楚這兩個方法的用法和概念。同時還有一些小細節問題需要註意。 學習內容: 1.getItemViewType和get
RadioButton(單選按鈕)&Checkbox(復選框)
choose cli oncreate resources 屬性設置 public orm and .html 本節引言: 本節給大家帶來的是Andoird基本UI控件中的RadioButton和Checkbox; 先說下本節要講解的內容是:RadioButton和C
Android之ListView的item獲取不到焦點
前兩天我在寫一個ListView,其中自定義的item中的控制元件有ImageView、TextView、Button,反正是比較複雜,寫完一整套流程後,真機一執行,詭異的事情出現了,點選item居然無響應。這怎麼回事呢?找了又找,程式碼看了一遍又一遍,沒問題
Android Studio ListView的item點選事件彈出AlertDialog,和item的滑動
首先看看效果圖: 點選彈出AlertDialog的確認框! (一)第一步,建立一個xml檔案顯示item的佈局 student_item.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa
android ScrollView中巢狀GridView,ListView只顯示一行的解決辦法
注:本文是由網上大神分享的解決方案彙集而成 方法一: 重寫ListView、GridView: 重寫ListView: public class MyListView extends ListView { public MyListView(Context contex
Android之ListView分頁獲取網路資料(伺服器端)(一)
資料庫分頁: mysql:select pname from product limit 0,2;第一個引數是指要開始的地方,第二個引數是指每頁顯示多少條資料;注意:第一頁用0表示。 oracle:rownumber SqlServer:top 一、伺服器端 ①新建包com
Android之listview新增資料篇
一、ListView: 1、 ListView通常有兩個職責: 1、向佈局填充資料 2、處理選擇點選等操作 2、ListView的建立需要3個元素:
ALV GRID中實現RadioButton單選按鈕
TYPE-POOLS:ABAP, slis. DATA: BEGIN OF gt_list OCCURS 0, sel TYPE char4, val TYPE i, END OF gt_list. DATA: go_alv_grid TYPE REF TO cl
android之listview分頁載入上拉重新整理、更新listview
==========系統方法實現上啦重新整理=========public class GreatToolsActivity extends Activity { private TextView tv; private ListView listtest;
android之listView快取機制
package com.example.day_05_06; import java.util.ArrayList; import java.util.List; import com.litsoft.General.General; import android.support.v7.app.ActionB
Android之ListView優化(使用Lrucache,圖片滑動時使用預設圖片,停止時載入)
注意:LruCache是有版本限制的,低版本的sdk需要在libs資料夾新增相應的support-4v檔案。 本文改造的大部分是參考http://www.iteye.com/topic/1118828,感謝。 不廢話直接上工程程式碼,內有關鍵註釋,專案就不上傳了,自己對照著
android中listview的item點選切換實現效果(選擇器selector)
public class V2_Adapter_TarentoCreateActivity_OverSea_City extends BaseAdapter{private V2_TarentoCreateActivity_OverSea_Place v2_TarentoCreateActivity_Over