2012-03-15 111 views
0

我在喜欢ListView控件有一个数据的值:如何获得在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> 
+1

下面是一个例子:Android的 - 多列的ListView(http://www.technotalkative.com/android-multi-column-listview/) – 2012-03-16 10:41:14

+0

不要开始你的标题[解决] 。要么接受现有答案,要么自己找到解决方案,将其作为实际答案并接受答案。 – Bart 2012-03-17 11:31:17

回答

1

治标不治本:))

public void onRadioButtonClicked(View v) { 
    RadioButton rb = (RadioButton) v; 
    // Toast.makeText(getApplicationContext(), 
    // rb.getText(),Toast.LENGTH_SHORT).show(); 
    View Rg = (View) rb.getParent(); 
    View LLayout = (View) Rg.getParent(); 
    TextView txtLvId = (TextView) LLayout.findViewById(R.id.txtLvid); 
    String LvID = txtLvId.getText().toString(); 

} 

在IDColumn的选择的文本和相应的价值的基础上保存记录在数据库中的瞬间。

但我正在寻找更好的解决方案。

+1

我有更好的解决方案:) :) – Trikaldarshi 2012-04-12 04:47:05

1

首先要做的是使它成为一个列表视图,而不是GridView的,因为你有一个排的项目列表,然后在使用行布局XML,你可以添加三个TextView的年代和一个单选按钮/复选框的看法。

+0

是的,我做到了..现在的问题是我需要根据用户做出的选择更新数据库。 – 2012-03-16 08:07:23

+1

好吧,在每个单选按钮/复选框中添加一个监听器,然后当用户单击它时,您可以对监听器中的数据执行任何操作。 – Mayank 2012-03-16 08:17:22

+0

我的XML中只有一个radiogroup,并且创建了no。的行存在的时间。我想,我需要运行一个for循环,但不知道如何获得每一行的值。 – 2012-03-16 08:54:18

-1
De tantas pulicaciones que hay en Internert, esta es la que me pudo ayudar. 
Muchas Gracias. 

public void onRadioButtonClicked(View v) { 
    RadioButton rb = (RadioButton) v; 
    // Toast.makeText(getApplicationContext(), 
    // rb.getText(),Toast.LENGTH_SHORT).show(); 
    View Rg = (View) rb.getParent(); 
    View LLayout = (View) Rg.getParent(); 
    TextView txtLvId = (TextView) LLayout.findViewById(R.id.txtLvid); 
    String LvID = txtLvId.getText().toString(); 

} 
+0

请用英语回答,以便每个人都可以获利... – Markus 2015-05-05 16:04:02