项目中用到了带单选按钮的ListView,本来是计划自己编写一个,结果发现ListView本身就有这个功能,这样大大节省了代码量,
只需要在构建ArrayAdapter对象时将textViewResourceId参数设置为系统内置的android.R.layout.simple_list_item_single_choice就可以了:
下面是具体代码:
package com.tangzq;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MyListView_RadioButton extends Activity implements OnItemClickListener{
ListView listview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listview=new ListView(this);
//android.R.layout.simple_list_item_single_choice设置ListView项目条带单选按钮
listview.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_single_choice,getData()));
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);//如果不使用这个设置,选项中的radiobutton无法响应选中事件
listview.setItemChecked(2, true);
setContentView(listview);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
listview.setItemChecked(position, true);
}
private List<String> getData(){
List<String> data = new ArrayList<String>();
data.add("测试数据1");
data.add("测试数据2");
data.add("测试数据3");
data.add("测试数据4");
data.add("测试数据5");
data.add("测试数据6");
return data;
}
}
截屏: