`
loovle
  • 浏览: 145517 次
  • 性别: 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> 
分享到:
评论

相关推荐

    删除ListView选中的item

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。"删除ListView选中的item"这个话题涉及到用户交互、数据管理和视图更新等核心知识点。在这个场景下,用户点击“清理”按钮后,ListView...

    android listview+checkbox实现多选

    在许多场景下,我们需要在ListView中加入复选框(Checkbox),实现多选功能,例如用户可以选择多个项目进行操作。本文将详细介绍如何在Android中使用ListView和Checkbox实现多选功能。 一、ListView概述 ListView是...

    listview两个点击时间的处理demo

    ListView listView = findViewById(R.id.list_view); MyAdapter adapter = new MyAdapter(this); listView.setAdapter(adapter); ``` 4. **处理点击事件**:在匿名内部类中,我们可以定义点击事件的具体逻辑。例如...

    listview+checkbox 多选

    为了在每个列表项中加入Checkbox,我们需要创建一个新的XML布局文件,包含一个TextView用于显示数据和一个Checkbox用于选择。 ```xml &lt;!-- item_layout.xml --&gt; android:layout_width="match_parent" android:...

    android 的listview 内部item的布局包含checkbox控件

    在ListView中,我们有时需要在每个Item(列表项)内加入可选的元素,如Checkbox,以实现多选、勾选等交互功能。本篇文章将深入探讨如何在ListView的内部Item布局中添加并处理Checkbox控件。 首先,我们需要创建一个...

    android -- listview与checkbox联用

    然而,当需要在ListView的每一项中加入可勾选的Checkbox时,开发者往往会遇到一些问题,比如CheckBox的状态控制困难,点击事件冲突等。本教程将详细介绍如何在ListView中正确地与Checkbox联用,以实现列表项的勾选...

    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按钮来显示选中了...

    加入动态控件以及消息响应的List Control

    本文将详细探讨如何在MFC中实现一个加入动态控件并具有消息响应功能的List Control,同时解决拖动滚动条时动态控件位置更新以及屏闪问题。 List Control,也称为ListView,是Windows用户界面中的一个重要组件,常...

    checkbox混乱的解决

    可以通过在适配器(Adapter)中重写`getView()`方法,加入如下代码: ```java @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView ...

    android常用控件用法源码收集带详细注释

    在这个例子中,`AsyncImageLoader` 类中的 `DownPicThread` 线程扮演消费者角色,处理任务列表 `task_List` 中的任务,而其他部分(可能是UI线程)添加任务到列表中,扮演生产者的角色。 - 使用 `wait()` 和 `...

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

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

    C#语言做的学生通讯录

    在设计用户界面时,Visual Studio(VS)提供了丰富的控件库,如TextBox用于输入文本,ListView或DataGrid用于展示数据,Button用于执行操作等。通过拖放这些控件并设置相应的事件处理程序,我们可以构建出直观易用的...

    Asp.net中的DataList应用

    &lt;button&gt;加入购物车&lt;/button&gt; ``` 接下来,我们需要在代码-behind文件(如`.cs`或`.vb`)中设置DataList的数据源。假设我们有一个名为`SaleList`的列表,包含商品信息: ```csharp protected void Page_Load...

    Android自定义弹出多选框,可全选

    在这个布局中,通常会包含一个RecyclerView或者ListView来展示选项,每个选项旁边有一个复选框供用户选择。复选框的状态可以通过CheckedTextView或者CheckBox控件来表示。 ```xml &lt;!-- multi_choice_item.xml --&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...

    C#模仿qq音乐编的音乐播放器

    这些控件的交互逻辑需要通过事件驱动编程来实现,比如Button的Click事件对应按钮点击,TrackBar的ValueChanged事件对应音量滑动。 再者,为了实现音乐列表功能,我们需要用到数据结构和控件绑定。可以使用ListBox或...

    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 ...

Global site tag (gtag.js) - Google Analytics