2012-03-15 113 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