2011-09-06 34 views
0

我有一個ListActivity在那裏我做這個獲取checedtextview檢查位置

Cursor cursor = getContentResolver().query(Phone.CONTENT_URI, 
      new String[] { Phone._ID, Phone.DISPLAY_NAME }, null, null, 
      null); 
    startManagingCursor(cursor); 
    String[] columns = new String[] { Phone.DISPLAY_NAME }; 
    int[] to = new int[] { R.id.name_row }; 
    ListAdapter mAdapter = new SimpleCursorAdapter(this, 
      R.layout.contact_list_row, cursor, columns, to); 
    this.setListAdapter(mAdapter); 

至極結合我的聯繫人的名字沒有我listadapter。每一行都是一個checkedtext視圖,所以我知道我想創建一個方法來檢索我檢查過的項目,但我無法讓它工作。有人能指出我正確的方向嗎?

回答

0

我對複選框沒有百分之百的確定,但是我已經爲按鈕和其他元素做了這個,並且經過快速瀏覽,我認爲這種方法是一樣的。

在複選框元素佈局XML中插入android:onClick="methodName"

在你的代碼

有類似這樣的功能的東西:

//Called from XML 
public void methodName(View view) { 
    int cursorPosition= getListView().getPositionForView(view); 
    Bundle itemData = (Bundle) mAdapter.getItem(cursorPosition); 
    // do something with data 
} 
+0

這不是我真正想要的,但謝謝。 – Gabriel

0

所以我發現我的方式。問題是我使用的是checked_positions.get(i)而不是checked_positions.valueAt(i)。

  ListView lv = getListView(); 
      SparseBooleanArray checked_positions = lv.getCheckedItemPositions(); 
      for (int i = 0; i < checked_positions.size(); i++) { 
       Log.d(TAG, "Checked " + i + " Value " + checked_positions.valueAt(i)); 
       if (checked_positions.valueAt(i)) { 
        Cursor ctv = (Cursor) lv.getItemAtPosition(checked_positions.keyAt(i)); 
       } 
      }