У меня есть данные в моем элементе управления ListView, такие как:
Country State City
India U.P. Kanpur
India M.P. Gwalior
Теперь проблема в том, что я хочу добавить выделение в ListView с помощью переключателя или любого другого элемента управления, например:
Country State City Choose
India U.P. Kanpur Yes|No
India M.P. Gwalior Yes|No
и, наконец, сохраните данные с их выбором.
Обновление: -
Я успешно добавил элементы управления в listView, теперь я хочу запустить цикл по всем строкам списка, чтобы получить значения каждой строки, включая радиокнопку.
public static final String KEY_DESCRIPTION = "description";
public static final String KEY_ID = "id";
public static final String KEY_ROW_ID = "_id";
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.listview_layout, cursor, new String[] {
GridTestActivity.KEY_ROW_ID,
GridTestActivity.KEY_ID,
GridTestActivity.KEY_DESCRIPTION }, new int[] {
R.id.txtLv_id, R.id.txtLvid,
R.id.txtLvDescription });
adapter.setViewResource(R.layout.listview_layout);
lv.setAdapter(adapter);
lv.setTextFilterEnabled(true);
lv.setFocusable(false);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int i,
long l) {
try {
int id = v.getSelectedItemPosition();
String id1 = (String) lv.getSelectedItem();
long id2 = lv.getSelectedItemId();
int id3 = i;//Return Row number
} catch (Exception ex) {
ex.setStackTrace(null);
}
}
});
public void onRadioButtonClicked(View v) {
RadioButton rb = (RadioButton) v;
Toast.makeText(getApplicationContext(), rb.getText(),
Toast.LENGTH_SHORT).show();
}
setOnItemClickListener возвращает мне номер строки, в то время как для обновления записи мне нужно значение Id.
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget443"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxWidth="400sp"
android:minWidth="400sp"
android:orientation="vertical"
android:stretchColumns="3" >
<TableRow
android:id="@+id/widget4344"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxWidth="400sp"
android:minWidth="400sp"
android:orientation="horizontal"
android:padding="0sp" >
<TextView
android:id="@+id/txtLv_id"
android:layout_width="10sp"
android:layout_height="wrap_content"
android:layout_column="0"
android:padding="4sp"
android:text="@string/txtLv_Id"
android:textSize="6pt"
android:visibility="invisible" >
</TextView>
<TextView
android:id="@+id/txtLvid"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_column="1"
android:padding="4sp"
android:text="@string/txtLvId"
android:textSize="6pt" >
</TextView>
<TextView
android:id="@+id/txtLvDescription"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_column="2"
android:padding="4sp"
android:text="@string/txtLvDescription"
android:textSize="6pt" >
</TextView>
<RadioGroup
android:id="@+id/rdGroup"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/rdYes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:onClick="onRadioButtonClicked"
android:text="@string/rdYes" />
<RadioButton
android:id="@+id/rdNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:onClick="onRadioButtonClicked"
android:text="@string/rdNo" />
</RadioGroup>
</TableRow>
</TableLayout>