Android 如何获取在ListView中添加的控件的值
我的ListView控件中有如下数据:Android 如何获取在ListView中添加的控件的值,android,sqlite,gridview,Android,Sqlite,Gridview,我的ListView控件中有如下数据: Country State City India U.P. Kanpur India M.P. Gwalior Country State City Choose India U.P. Kanpur Yes|No India M.P. Gwalior Yes|No 现在的问题是,我想通过单选按钮或任何其他控件在ListView中添加选择,如: Country State City Ind
Country State City
India U.P. Kanpur
India M.P. Gwalior
Country State City Choose
India U.P. Kanpur Yes|No
India M.P. Gwalior Yes|No
现在的问题是,我想通过单选按钮或任何其他控件在ListView中添加选择,如:
Country State City
India U.P. Kanpur
India M.P. Gwalior
Country State City Choose
India U.P. Kanpur Yes|No
India M.P. Gwalior Yes|No
最后保存数据及其选择
更新:-
我成功地在listView中添加了控件,现在我想在listView的所有行中运行一个循环,以获取每行的值,包括radiobutton
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();
}
公共静态最终字符串键\u DESCRIPTION=“DESCRIPTION”;
公共静态最终字符串键\u ID=“ID”;
公共静态最终字符串键\u行\u ID=“\u ID”;
SimpleCrsorAdapter=新的SimpleCrsorAdapter(此,
R.layout.listview_布局,光标,新字符串[]{
GridTestActivity.KEY\u行\u ID,
GridTestActivity.KEY\u ID,
GridTestActivity.KEY_DESCRIPTION},新int[]{
R.id.txtLv_id,R.id.txtLvid,
R.id.txtLvDescription});
adapter.setViewResource(R.layout.listview\u布局);
低压设置适配器(适配器);
lv.setTextFilterEnabled(真);
lv.setFocusable(假);
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共虚线(适配器视图a、视图v、内部i、,
长(l){
试一试{
int id=v.getSelectedItemPosition();
字符串id1=(字符串)lv.getSelectedItem();
long id2=lv.getSelectedItemId();
int id3=i;//返回行号
}捕获(例外情况除外){
例如,设置跟踪(空);
}
}
});
单击RadioButton上的公共无效(视图v){
RadioButton rb=(RadioButton)v;
Toast.makeText(getApplicationContext(),rb.getText(),
吐司。长度(短)。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>
首先要做的是将其设置为listview而不是gridview,因为您有行项目列表,然后在XML中使用行布局可以向视图添加三个TextView和一个单选按钮/复选框。临时解决方案:)
根据所选文本和IDColumn的相应值,立即将记录保存到数据库中
但我正在寻找更好的解决方案。是的,我做到了。。现在的问题是,我需要根据用户所做的选择更新数据库。好吧,在每个单选按钮/复选框上添加一个侦听器,然后当用户单击它时,你可以对listener中的数据执行任何操作。我的XML中只有一个radiogroup,它的创建次数是该行存在的次数。我认为,我需要运行for循环,但无法确定如何获取每一行的值。在listadapter中,将侦听器添加到每个膨胀视图的RadioGroup中。例如:不要以[solved]开头标题。要么接受一个现有的答案,要么如果你自己找到了解决方案,就把它变成一个实际的答案并接受它。
<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>