我正在开发一个应用程序,我需要在列表视图中实现单选按钮。我想实现一个列表视图,每一行都有一个单选按钮和两个文本视图。并在列表视图之下一个按钮“Ok”。
我所做的是创建列表视图和自定义适配器。
列表视图的代码如下:
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#00000000"
android:overScrollMode="never"
tools:ignore="NestedScrolling"
android:choiceMode="singleChoice" >
我创建了一个自定义适配器布局:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
android:layout_width="fill_parent"
android:layout_height="wrap_content"
tools:ignore="UselessParent" >
android:id="@+id/radiobutton"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".1" />
android:id="@+id/textview1"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".3" />
android:id="@+id/textview2"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".3" />
片段的java代码如下:
ListView listView = (ListView) view.findViewById(R.id.listview);
// values is a StringArray holding some string values.
CustomAdapter customAdapter = new CustomAdapter (getActivity(), values);
listView.setAdapter(customAdapter );
listView.setOnItemClickListener(this);
@Override
public void onItemClick(AdapterView> arg0, View arg1, int position, long arg3) {}
并且适配器的代码如下:
public class CustomAdapter extends ArrayAdapter {
/** Global declaration of variables. As there scope lies in whole class. */
private Context context;
private String[] listOfValues;
/** Constructor Class */
public CustomAdapter (Context c,String[] values) {
super(c,R.layout.adapter_layout,values);
this.context = c;
this.listOfValues = values;
}
/** Implement getView method for customizing row of list view. */
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
// Creating a view of row.
View rowView = inflater.inflate(R.layout.adapter_layout, parent, false);
TextView textView1 = (TextView)rowView.findViewById(R.id.textview1);
TextView textView2 = (TextView)rowView.findViewById(R.id.textview2);
RadioButton radioButton = (RadioButton) rowView.findViewById(R.id.radiobutton);
radioButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, CustomAdapter[position], Toast.LENGTH_SHORT).show();
}
});
return rowView;
}
}
textview1的数据从SQLite数据库和textview2填充数据为“状态关闭”。在选择或通过单击任何单选按钮时,文本视图的文本将更改为“状态打开”。
问题是:应用的需要是只有一个单选按钮应该选择,并且textview2的数据在选择上有变化。当用户单击另一个单选按钮时,它将被选中,而前一个应该取消选中,并且textview2的文本将被更改为先前选择的单选按钮的“已关闭状态”,并单击单选按钮进入“状态打开”。
编辑1:
并点击“确定”按钮,我想获取位置,列表视图textview1和textview2的文本,因为我想在SQLite数据库中保存该文本在视图中。
请指导我应该遵循哪些步骤。我在我的应用程序的中间您需要宝贵的指导。