Я разрабатываю приложение, в котором мне нужно реализовать переключатели в виде списка. Я хочу реализовать представление списка с одним переключателем и двумя текстовыми представлениями в каждой строке. И одна кнопка "ОК" ниже списка.
Что я сделал, я создал представление списка и пользовательский адаптер. Код listview выглядит так:
<ListView
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" >
</ListView>
И я создал собственный вариант адаптера:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
tools:ignore="UselessParent" >
<RadioButton
android:id="@+id/radiobutton"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".1" />
<TextView
android:id="@+id/textview1"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".3" />
<TextView
android:id="@+id/textview2"
android:layout_width="0sp"
android:layout_height="wrap_content"
android:layout_weight=".3" />
</TableRow>
</TableLayout>
Код фрагмента 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<String> {
/** 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 данные "Status Closed". А при выборе или щелкнув любой переключатель, текст текстового вида изменится на "Status Open".
Проблема:. Необходимость приложения заключается в том, что только один переключатель должен выбрать select и данные textview2 получить изменение при выборе. И когда пользователь нажимает на другую радиокнопку, он получает выбор, а предыдущий должен отменить выделение, а текст textview2 изменится на "Статус закрыт" ранее выбранного переключателя и щелкнул по кнопке "Открыть статус".
Изменить 1:
И onclick на кнопке "ОК" я хочу получить позицию, текст списка listview1 и textview2, так как я хочу сохранить этот текст в базе данных SQLite в deview.
Пожалуйста, расскажите, какие шаги я должен выполнить. Я нахожусь в середине моего заявления. Ваше ценное руководство требуется.