`
loovle
  • 浏览: 142903 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

listview中加入listbutton

阅读更多
android 应用之listview添加radiobutton,获取textView

转自http://blog.csdn.net/dany1202/archive/2010/11/20/6023449.aspx



点击一整行,更换radiobutton选择。

xml代码:

view plaincopy to clipboardprint?
<?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代码:

view plaincopy to clipboardprint?
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 { 
    /** Called when the activity is first created. */ 
    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系统中,提供了这样的方法

mylist.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

程序主代码:

view plaincopy to clipboardprint?
protected void onCreate(Bundle savedInstanceState) { 
        // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.list_layout); 
        contentString = new String[] {  
                "示例", "透明动画", 
                "伸缩动画", "移动动画", 
                "旋转动画", "透明_伸缩", 
                "透明_移动", "透明_旋转" 
                 
    }; 
        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目录下,可参见源码

三 多选框

view plaincopy to clipboardprint?
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) { 
        // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        contentString = new String[] {  
                "示例", "透明动画", 
                "伸缩动画", "移动动画", 
                "旋转动画", "透明_伸缩", 
                "透明_移动", "透明_旋转" 
                 
    }; 
        arrayAdapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_multiple_choice,//.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_MULTIPLE);//.CHOICE_MODE_SINGLE); 
        mylist.setItemChecked(0, true); 
    } 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) { 
        mylist.setItemChecked(arg2, true); 
         
    } 
    public void onNothingSelected(AdapterView<?> arg0) { 
        // TODO Auto-generated method stub 
         
    } 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
        // TODO Auto-generated method stub 
         
    }     


main.xml

view plaincopy to clipboardprint?
<?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> 
分享到:
评论

相关推荐

    Android在listview添加checkbox实现原理与代码

    主界面CheckBoxinListViewActivity.java代码如下: 代码如下: public class ... private ListView listview; private Button checkAll; private Button noCheckAll; @Override public void onCreate(Bundle

    Android checkbox的listView具体操作方法

    本文主要实现在自定义的ListView布局中加入CheckBox控件,通过判断用户是否选中CheckBox来对ListView的选中项进行相应的操作。通过一个Demo来展示该功能,选中ListView中的某一项,然后点击Button按钮来显示选中了...

    AlertDialogPro-holo和material 两种风格的对话框.zip

    2.holo风格的dialog包含两种holo:Theme.AlertDialogPro.Holo和Theme.AlertDialogPro.Holo.Light只需在style文件中加入alertDialogProTheme属性:&lt;style name="AppTheme" parent="AppBaseTheme"&gt;  ...  ...

    VC++2010权威开发指南+源代码

     6.9 Visual C++ 2010 ListView开发 335  6.10 Visual C++ 2010 RichEditView开发 335  6.11 VisualC++ 2010 TreeView开发 336  6.12 Visual C++ 2010 Office 2007风格文档视图开发框架 337  Visual C++ 2010 ...

    Visual C++2010开发权威指南(共三部分).part1.rar

    6.9 Visual C++ 2010 ListView开发 335 6.10 Visual C++ 2010 RichEditView开发 335 6.11 VisualC++ 2010 TreeView开发 336 6.12 Visual C++ 2010 Office 2007风格文档视图开发框架 337 6.13 Visual C++ 2010 Visual...

    Visual C++ 编程资源大全(英文控件)

    13.zip The simplest way to put the MRU list in a submenu 将MRU列表加入子菜单的简单途径(2KB)&lt;END&gt;&lt;br&gt;14,14.zip Using MRU on a submenu 在子菜单中使用MRU(3KB)&lt;END&gt;&lt;br&gt;15,15.zip MRU list ...

    VC++2010权威开发指南+源代码.part2

     6.9 Visual C++ 2010 ListView开发 335  6.10 Visual C++ 2010 RichEditView开发 335  6.11 VisualC++ 2010 TreeView开发 336  6.12 Visual C++ 2010 Office 2007风格文档视图开发框架 337  Visual C++ 2010 ...

    asp.net知识库

    如何判断ArrayList,Hashtable,SortedList 这类对象是否相等 帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/...

    vc++ 应用源码包_1

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    vc++ 应用源码包_2

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    vc++ 应用源码包_6

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    vc++ 应用源码包_5

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    vc++ 应用源码包_3

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    VC实现炫眩qq界面的模拟(附源码)

    界面换肤 美化 异形窗口 vista 样式 透明窗体 自绘控件 vc vb delphi 编程 源码 代码 例子 磨沙 半透明 开发包 免费 破解 button dialog frame XP 下载 自绘按钮 菜单 标题栏 滚动条 listctrl treeview listview ...

    java源码包2

    两个目标文件,自绘button。 Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟  用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven ...

    vc++ 开发实例源码包

    演示了其它控件(全部)阙套到List中并自绘等,学习自绘以及阙套CListCtrl 控件的好实例。 ColorStatic 自绘了CStatic控件,实现了标题字符滚动效果。 CSDN免积分下载工具 源码 演示了使用CInternetSession去下载...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款... InputStream is=ftpClient.list(); //得到服务器目录与文件列表输入流  StringBuffer info=new StringBuffer(); /...

    java源码包3

    两个目标文件,自绘button。 Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟  用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven ...

    java源码包4

    两个目标文件,自绘button。 Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟  用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven ...

Global site tag (gtag.js) - Google Analytics