`
liangoogle
  • 浏览: 278388 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android-------listview 实现radiobutton 单选

    博客分类:
  • view
阅读更多

 

 

import android.app.Activity;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.CompoundButton;

import android.widget.CompoundButton.OnCheckedChangeListener;

import android.widget.ImageView;

import android.widget.RadioButton;

import android.widget.TextView;

 

public class RecoverListAdapter extends BaseAdapter {

 

    private LayoutInflater inflater;

 

    int[] backup_record_item_image;

 

    String[] backup_record_item_time;

 

    String[] backup_record_item_to;

 

    Activity activity;

 

    private int temp = -1;

 

    public RecoverListAdapter(Activity context, int[] backup_record_item_image,

            String[] backup_record_item_time, String[] backup_record_item_to) {

        this.inflater = LayoutInflater.from(context);

        this.backup_record_item_image = backup_record_item_image;

        this.backup_record_item_time = backup_record_item_time;

        this.backup_record_item_to = backup_record_item_to;

        this.activity = context;

    }

 

    @Override

    public int getCount() {

        return backup_record_item_time.length;

    }

 

    @Override

    public Object getItem(int position) {

        return position;

    }

 

    @Override

    public long getItemId(int position) {

        return position;

    }

 

    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder;

        if (convertView == null) {

            holder = new ViewHolder();

            convertView = this.inflater.inflate(R.layout.general_recover_list_item, null);

            holder.iv = (ImageView) convertView.findViewById(R.id.backup_record_item_image);

            holder.tv_time = (TextView) convertView.findViewById(R.id.backup_record_item_time);

            holder.tv_to = (TextView) convertView.findViewById(R.id.backup_record_item_to);

            holder.radioButton = (RadioButton) convertView

                    .findViewById(R.id.backup_record_item_btn);

            holder.radioButton.setChecked(false);

            convertView.setTag(holder);

        } else {

            holder = (ViewHolder) convertView.getTag();

        }

 

        holder.iv.setImageResource(backup_record_item_image[position]);

        holder.tv_time.setText(backup_record_item_time[position]);

        holder.tv_to.setText(backup_record_item_to[position]);

 

      //黑体部分为实现单选功能部分

 

        holder.radioButton.setId(position);

        holder.radioButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override

            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {


                if (isChecked) {

                    if (temp != -1) {

                        RadioButton tempButton = (RadioButton) activity.findViewById(temp);

                        if (tempButton != null) {

                            tempButton.setChecked(false);

                        }

                    }

                    temp = buttonView.getId();

                }

            }

        });

 

        if (position == temp) {

            holder.radioButton.setChecked(true);

        } else {

            holder.radioButton.setChecked(false);

        }

        return convertView;

    }

 

    private class ViewHolder {

        ImageView iv;

 

        TextView tv_time;

 

        TextView tv_to;

 

        RadioButton radioButton;

 

    }

}


general_recover_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" 
android:layout_height="fill_parent">
<RelativeLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:id="@+id/backup_record_item">
<ImageView 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:src="@drawable/icon"
android:layout_alignParentLeft="true"
android:id="@+id/backup_record_item_image"/>
<LinearLayout 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:orientation="vertical"
android:layout_toRightOf="@+id/backup_record_item_image"
android:id="@+id/backup_record_item_txt">
<TextView 
android:layout_height="wrap_content"
android:layout_width="wrap_content" 
android:text="时间"
android:layout_alignTop="@+id/imageView1"
android:layout_alignBottom="@+id/imageView1"
android:id="@+id/backup_record_item_time"/>
<TextView 
android:layout_height="wrap_content"
android:layout_width="wrap_content" 
android:text="备份联系人    到  " 
android:layout_toRightOf="@+id/imageView1"
android:layout_alignTop="@+id/imageView1"/>
<TextView 
android:layout_height="wrap_content"
android:layout_width="wrap_content" 
android:text="手机/存储卡" 
android:layout_toRightOf="@+id/imageView1"
android:layout_alignTop="@+id/imageView1"
android:id="@+id/backup_record_item_to" />
</LinearLayout>
<RadioButton 
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:id="@+id/backup_record_item_btn" />

<CheckBox 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"
android:visibility="gone"
android:text="" 
android:id="@+id/backup_record_item_check" />
</RelativeLayout>
</LinearLayout>

main.xml
<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:orientation="vertical"
android:id="@+id/recover_items">
<ListView 
android:id="@+id/recover_list" 
android:cacheColorHint="#00000000"
android:layout_height="match_parent" 
android:layout_width="fill_parent"/>
<View 
android:id="@+id/recover_footer" 
android:layout_width="fill_parent"
android:layout_height="40dip" />
</LinearLayout>
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android---UI篇

    •Android---UI篇---RadioButton(单选按钮) • •Android---UI篇---CheckBox(多选按钮) • •Android---UI篇---ListView之SampleAdapter(列表)---1 • •Android---UI篇---ListView之ArrayAdapter(列表)---2...

    listview 里面加radiobutton 单选操作

    实现RadioButton单选的操作方式与ListView基本相同,主要区别在于GridView的布局管理和布局参数。在GridView中,每一项也是由一个单独的布局文件定义,同样需要自定义Adapter并处理RadioButton的选中状态。 综上所...

    android ListView中RadioinButton实现单选

    这是我平时用的多的一个小项目,刚开始的时候,老是实现不了在listView中RadionButton的单选功能,这是后来经过多次使用后。终于找到的解决listVIew中单选问题的解决办法,弄出来和大家一起学习

    androidlistview里面使用radiobutton

    而当需要在ListView中实现单选功能时,我们通常会使用RadioButton。本文将深入探讨如何在ListView中集成RadioButton,以及相关的实现技巧。 一、RadioButton基础 RadioButton是Android中的一个选择控件,属于...

    ListView下的Radiobutton单选问题

    当需要在ListView中实现单选功能时,通常会用到RadioButton。这里我们将深入探讨如何在ListView的每一项中嵌入RadioButton,并实现单选效果,同时利用Dialog的形式弹出这个ListView。 首先,我们需要在ListView的...

    Android ListView单选

    本篇将详细介绍如何在Android中实现ListView的单选模式。 一、ListView的基本使用 首先,我们需要理解ListView的基础用法。在布局文件中添加ListView,并为它指定一个id,例如: ```xml &lt;ListView android:id="@+...

    listview单选实现

    ListView是Android平台中一个常用的控件,用于展示大量的数据列表。...通过这个例子,你可以学习到ListView与Adapter的配合,以及如何利用RadioButton实现单选功能,这些都是Android开发中常用的技术。

    带checkbox和radiobutton的listview(实现翻页保存和单选)

    综上所述,实现“带checkbox和radiobutton的listview(实现翻页保存和单选)”涉及到Android的自定义Adapter、数据绑定、ListView的分页加载、状态保存以及单选功能的实现。这是一个涉及多个技术点的综合性任务,需要...

    ListView实现单选多选

    总的来说,实现ListView的单选或多选功能需要对Android的基础组件有深入的理解,包括ListView、Adapter、事件监听以及视图复用机制。这个示例旨在帮助开发者更好地理解和实践这些知识点,以便在实际项目中灵活应用。

    android listview radiobutton

    在对话框的布局中,同样使用RadioButton和RadioGroup,实现单选逻辑与ListView类似。 7. **性能优化** - 使用ViewHolder模式优化ListView的滑动性能,减少 findViewById 的调用次数。 - 如果数据量大,考虑使用...

    listview实现单选功能

    在本文中,我们将深入探讨如何在Android中通过ListView实现单选功能。 首先,我们需要了解ListView的基础。ListView是一个可滚动的视图,用于显示一列可滚动的项目列表。每个项目通常对应一个数据项,并由ListView...

    android ListView中RadioinButton实现单选.zip

    本篇文章将详细讲解如何在Android的ListView中结合RadioButton实现单选功能。 首先,我们需要了解RadioButton的基本用法。RadioButton是Android中的一个视图组件,属于RadioGroup的一部分,用于创建单选按钮。在一...

    ListView实现单选

    本篇文章将详细讲解如何在Android中通过ListView实现单选功能。 首先,我们需要一个包含单选按钮的自定义布局。在XML布局文件中,可以创建一个`CheckedTextView`或者`RadioButton`作为列表项的视图。例如: ```xml...

    (Android)五分钟让你轻松学会ListView单选和多选功能

    - **RadioButton**:在ListView中实现单选,我们可以为每个Item视图添加一个RadioButton。首先,在布局文件中定义Item视图,包含一个RadioButton,然后在Adapter的getView()方法中设置每个RadioButton的初始状态。...

    Android 系统自带单选按钮的listView

    在本教程中,我们将探讨如何在Android系统中利用ListView结合单选按钮(RadioButton)来实现一个功能性的选择列表,以及如何设置默认选中项。 首先,我们需要了解ListView的基本用法。ListView是Android SDK中的一...

    ListViewAndRadioButton

    在Android开发中,ListView是用于显示可滚动列表的视图组件,而RadioButton是单选按钮控件,常用于实现用户只能选择一个选项的功能。当两者结合时,通常是为了在ListView的每一行中提供一个可选的选项。这种设计在很...

    ListView中使用单选和多选效果

    在某些应用场景中,我们可能需要实现ListView中的单选或多选功能,例如在创建问卷调查或设置选项时。本篇文章将详细讲解如何在ListView中实现单选和多选效果。 首先,我们需要了解ListView的基本结构。ListView通常...

    android listview,ExpandableListView实现单选,多选,全选,edittext实现批量输入

    总之,通过合理的布局设计和事件监听,我们可以灵活地在Android的ListView和ExpandableListView中实现单选、多选和全选功能,同时结合EditText实现批量输入,提升用户体验。这需要对Android的UI组件和数据绑定机制有...

    listview多行多列单选

    - 可以使用RadioButton或者CheckBox来实现单选功能,但通常在ListView中推荐使用RadioGroup,因为它能自动处理单选逻辑。 - 在ListView的Adapter中,我们需要为每个Item设置一个RadioGroup,并在其中包含一个...

    Android三级目录、ListView单选/GridView单选、ListView多选/GridView多选

    本篇文章将深入探讨如何在Android中实现ListView和GridView的单选与多选功能,并涉及背景和字体颜色的变化。 首先,让我们了解这两个控件的基本概念。ListView是一个垂直滚动的列表视图,每个列表项可以通过Adapter...

Global site tag (gtag.js) - Google Analytics