生活随笔
收集整理的這篇文章主要介紹了
android 应用之listview添加radiobutton,获取textView
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
程序效果:
點擊一整行,更換radiobutton選擇。
xml代碼:
[java]?view plaincopy
<?xml?version="1.0"?encoding="utf-8"?>?? <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android"?? ????android:id="@+id/layout"?? ????android:orientation="horizontal"?? ????android:layout_width="fill_parent"?? ????android:layout_height="fill_parent"?? ????>?? ???<TextView??android:id="@+id/list_text"?? ????android:layout_width="wrap_content"??? ????android:layout_height="wrap_content"??? ????android:layout_centerVertical="true"?? ????/>?? ???<ImageView?android:id="@+id/list_radioImg"?? ????android:layout_width="wrap_content"?? ????android:layout_height="wrap_content"?? ????android:layout_alignParentRight="true"/>?? </RelativeLayout>??
?
java代碼:
[java]?view plaincopy
import?java.util.ArrayList;?? import?java.util.HashMap;?? import?java.util.List;?? import?java.util.Map;?? import?android.app.ListActivity;?? import?android.os.Bundle;?? import?android.view.View;?? import?android.widget.ListView;?? import?android.widget.SimpleAdapter;?? import?android.widget.Toast;?? public?class?listRadioBtn?extends?ListActivity?{?? ?????? ????private?int?balanceIndex?=?0;?? ????SimpleAdapter?adapter;?? ????List<Map<String,?Object>>?list;?? ?????? ????@Override?? ????public?void?onCreate(Bundle?savedInstanceState)?{?? ????????super.onCreate(savedInstanceState);?? ?????????? ????????adapter=?new?SimpleAdapter(this,getData(),R.layout.main,new?String[]{"text","img"},new?int[]{R.id.list_text,R.id.list_radioImg});??? ?????????? ????????setListAdapter(adapter);?? ????}?? ?????????? ????????private?List<Map<String,?Object>>?getData(){?? ?????????????list?=?new?ArrayList<Map<String,?Object>>();?? ????????????Map<String,?Object>?map_day?=?new?HashMap<String,?Object>();??? ????????????map_day.put("text",?"白天");???? ????????????map_day.put("img",?R.drawable.setlist_radio_on);?????????????? ????????????list.add(map_day);?? ?????????????? ????????????Map<String,?Object>?map_clody?=?new?HashMap<String,?Object>();??? ????????????map_clody.put("text",?"陰天");???? ????????????map_clody.put("img",?R.drawable.setlist_radio_off);??????????????? ????????????list.add(map_clody);??? ?????????????? ????????????Map<String,?Object>?map_clo?=?new?HashMap<String,?Object>();??? ????????????map_clo.put("text",?"微風");???? ????????????map_clo.put("img",?R.drawable.setlist_radio_off);????????????? ????????????list.add(map_clo);??? ?????????????? ????????????return?list;?? ????????}?? ?????????? ????????protected?void?onListItemClick(ListView?arg0,?View?arg1,?int?arg2,?long?arg3)?{?? ?????????Toast?t?=?Toast.makeText(this,?""+list.get(arg2).get("text"),?Toast.LENGTH_LONG);?? ?????????t.show();?? ???????????? ?????????????ChangeRadioImg(balanceIndex,false);?? ?????????????ChangeRadioImg(arg2,true);?? ?????????????balanceIndex=arg2;????? ??????????????? ?????????????list.get(arg2).get("text");?? ?????????}?? ?????????? ????????private?void?ChangeRadioImg(int?selectedItem,?boolean?b)?{?? ????????????SimpleAdapter?la?=?adapter;??? ????????????HashMap<String,?Object>?map?=?(HashMap<String,?Object>)la.getItem(selectedItem);???? ????????????if(b)?? ????????????????map.put("img",?R.drawable.setlist_radio_on);?? ????????????else?? ????????????????map.put("img",?R.drawable.setlist_radio_off);?? ???????????la.notifyDataSetChanged();?? ?????????????? ????????}?? ????????? }??
?
二
另一個簡單辦法:
android系統(tǒng)中,提供了這樣的方法
mylist.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
?
程序主代碼:
[java]?view plaincopy
protected?void?onCreate(Bundle?savedInstanceState)?{?? ?????????? ????????super.onCreate(savedInstanceState);?? ????????setContentView(R.layout.list_layout);?? ????????contentString?=?new?String[]?{??? ????????????????"示例",?"透明動畫",?? ????????????????"伸縮動畫",?"移動動畫",?? ????????????????"旋轉(zhuǎn)動畫",?"透明_伸縮",?? ????????????????"透明_移動",?"透明_旋轉(zhuǎn)"?? ?????????????????? ????};?? ????????arrayAdapter?=?new?ArrayAdapter<String>(this,?? ????????????????android.R.layout.simple_list_item_single_choice,?? ????????????????contentString);?? ????????mylist?=?(ListView)?findViewById(R.id.ListView01);?? ????????mylist.setAdapter(arrayAdapter);?? ????????mylist.setOnItemClickListener(this);?? ????????mylist.setOnItemSelectedListener(this);?? ????????mylist.setChoiceMode(ListView.CHOICE_MODE_SINGLE);?? ????????mylist.setItemChecked(0,?true);?? ????}??
其中,android.R.layout.simple_list_item_single_choice在framework/base/core/res/res/layout目錄下,可參見源碼
?
?
三 多選框
[java]?view plaincopy
import?android.app.Activity;?? import?android.os.Bundle;?? import?android.view.View;?? import?android.widget.AdapterView;?? import?android.widget.AdapterView.OnItemClickListener;?? import?android.widget.AdapterView.OnItemSelectedListener;?? import?android.widget.ArrayAdapter;?? import?android.widget.ListView;?? public?class?ListCheckbox?extends?Activity?implements?OnItemClickListener,OnItemSelectedListener{?? ????private?String?contentString[];?? ????ArrayAdapter?arrayAdapter;?? ????ListView?mylist;?? ????protected?void?onCreate(Bundle?savedInstanceState)?{?? ?????????? ????????super.onCreate(savedInstanceState);?? ????????setContentView(R.layout.main);?? ????????contentString?=?new?String[]?{??? ????????????????"示例",?"透明動畫",?? ????????????????"伸縮動畫",?"移動動畫",?? ????????????????"旋轉(zhuǎn)動畫",?"透明_伸縮",?? ????????????????"透明_移動",?"透明_旋轉(zhuǎn)"?? ?????????????????? ????};?? ????????arrayAdapter?=?new?ArrayAdapter<String>(this,?? ????????????????android.R.layout.simple_list_item_multiple_choice,?? ????????????????contentString);?? ????????mylist?=?(ListView)?findViewById(R.id.ListView01);?? ????????mylist.setAdapter(arrayAdapter);?? ????????mylist.setOnItemClickListener(this);?? ????????mylist.setOnItemSelectedListener(this);?? ????????mylist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);?? ????????mylist.setItemChecked(0,?true);?? ????}?? ????public?void?onItemSelected(AdapterView<?>?arg0,?View?arg1,?int?arg2,long?arg3)?{?? ????????mylist.setItemChecked(arg2,?true);?? ?????????? ????}?? ????public?void?onNothingSelected(AdapterView<?>?arg0)?{?? ?????????? ?????????? ????}?? ????public?void?onItemClick(AdapterView<?>?arg0,?View?arg1,?int?arg2,?long?arg3)?{?? ?????????? ?????????? ????}?????? }??
?
main.xml
[xhtml]?view plaincopy
<?xml?version="1.0"?encoding="utf-8"?>?? <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"?? ????android:orientation="vertical"?? ????android:layout_width="fill_parent"?? ????android:layout_height="fill_parent"?? ????>?? <ListView?android:id="@+id/ListView01"??? android:layout_width="fill_parent"?? ?android:layout_height="fill_parent"/>?? </LinearLayout>??
?
總結(jié)
以上是生活随笔為你收集整理的android 应用之listview添加radiobutton,获取textView的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。