本地数据下,radiobutton和图片组合,利用adapter+listview进行单选
来源:互联网 发布:java毕业论文题目 编辑:程序博客网 时间:2024/06/12 01:39
浮生偷得半日闲,等接口定义的过程中,重新复习下adapter+listview实现单选的方法
主界面
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.locallistviewradiobutton.MainActivity" > <ListView android:id="@+id/lv_radiobutton" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@null"> </ListView></RelativeLayout>
activity_listview.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <LinearLayout android:id="@+id/ll_rg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#C6C6C6"> <RadioButton android:id="@+id/rb_select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:focusable="false"/> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="name" android:textSize="20sp"/> <ImageView android:id="@+id/iv_card" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="centerInside" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="2dp" android:layout_marginBottom="2dp" android:layout_gravity="left" android:adjustViewBounds="true" android:src="@drawable/ic_launcher" /> </LinearLayout> <View android:layout_width="fill_parent" android:layout_height="10dp" android:background="#ffffff" /></LinearLayout>
MainActivity.java
package com.example.locallistviewradiobutton;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.AdapterView.OnItemClickListener;public class MainActivity extends Activity { private ListView lv_radiobutton; private RBlistAdapter adapter; private String[] names = new String[] { "a","b","c","d","e" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv_radiobutton = (ListView) findViewById(R.id.lv_radiobutton); adapter = new RBlistAdapter(this, names); lv_radiobutton.setAdapter(adapter); //点击一行任意位置都能保证radiobutton选中 lv_radiobutton.setOnItemClickListener(new myOnItemClickListener()); } private class myOnItemClickListener implements OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { adapter.index = position;//获取位置并传给adapter中的index(public变量) adapter.notifyDataSetChanged(); } } public void onBackPressed() { // TODO Auto-generated method stub super.onBackPressed(); }}
RBlistAdapter.java
package com.example.locallistviewradiobutton;import android.widget.BaseAdapter;import android.annotation.SuppressLint;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.RadioButton;import android.widget.TextView;import android.widget.Toast;public class RBlistAdapter extends BaseAdapter{ private LayoutInflater inflater; private String[] picspecies; private viewHolder holder; // 标记用户当前选择的那一个,默认为第一个:(0) public int index = 0; private Context c; public RBlistAdapter(Context c, String[] picspecies) { super(); this.c = c; this.picspecies = picspecies; inflater = LayoutInflater.from(c); } @Override public int getCount() { return picspecies.length; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @SuppressLint("InflateParams") @Override public View getView(final int position, View convertView, ViewGroup parent) { holder = new viewHolder(); if (convertView == null) { convertView = inflater.inflate(R.layout.activity_listview, null); holder.nameTxt = (TextView) convertView.findViewById(R.id.tv_name); holder.selectBtn = (RadioButton) convertView.findViewById(R.id.rb_select); convertView.setTag(holder); } else { holder = (viewHolder) convertView.getTag(); } holder.nameTxt.setText(picspecies[position]); holder.selectBtn .setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { Toast.makeText(c, "您选择的是:" + picspecies[position], Toast.LENGTH_SHORT).show(); index = position; notifyDataSetChanged(); } } }); if (index == position) {// 选中的条目和当前的条目是否相等 holder.selectBtn.setChecked(true); } else { holder.selectBtn.setChecked(false); } return convertView; } public class viewHolder { public TextView nameTxt; public RadioButton selectBtn; }}
代码下载
0 0
- 本地数据下,radiobutton和图片组合,利用adapter+listview进行单选
- ListView与RadioButton组合——自定义单选列表
- ListView与RadioButton组合实现单选列表
- 利用RadioGroup和RadioButton实现单选且选中的效果自定图片
- Listview+RadioButton实现单选
- Android实现LIstView条目单选和多选RadioButton
- android-------listview 实现radiobutton 单选
- 实现listview里radiobutton单选
- ListView 中使用RadioButton实现单选
- ListView+radioButton实现每行单选
- ListView与RadioButton的结合单选
- ListView配合RadioButton实现单选列表
- 自定义类似RadioButton的单选、多选的ListView
- Android随记------带RadioButton的单选listView
- [Android实例] 重写ListView控件实现RadioButton单选
- 在ListView的Item中使用RadioButton实现单选
- Android中ListView与RadioButton结合----自定义单选列表
- Android之ListView包含RadioButton的单选问题解决办法
- MySQL 事件调度器 -- phpmyadmin和命令行下操作
- PostgreSQL regress test
- [LeetCode160] Intersection of Two Linked Lists
- 背包问题
- Could not connect to '10.7.100.182' (port 22): Connection failed
- 本地数据下,radiobutton和图片组合,利用adapter+listview进行单选
- Android分步注册,Activity由B返回A修改再前往B,B中已填项不变
- Android中手机号、车牌号正则表达式
- 【转】Android编程判断手机or平板
- Android界面隐藏软键盘的探索(兼findViewById返回null解决办法)
- Android Studio中使用android:src="@drawable/ic_launcher"报错
- Android Fragment初探:静态Fragment组成Activity
- 【转】在Android布局中使用include和merge标签
- Android ViewPager初探:让页面滑动起来