您知道當前選定項目的列表位置,您在ListView外部有一個按鈕,該按鈕應觸發該項目的某個操作,而且您不僅僅製作ListView行(或每行內的某個子視圖)點擊。對?
您可以從列表的適配器中獲取信息。 getItem(int position)返回位置處列表項表示的對象,因此如果存儲在對象中,則可以直接檢索所需的信息。 getView(int position)返回行的視圖,允許您使用findViewById(int id)來檢索您的TextView。
如果您還沒有適配器,可以使用getAdapter()從ListView中獲取它。
// ListView myListView = the ListView in question
// int selectedRow = the currently selected row in the ListView
// Each row in the ListView is backed by an object of type MyCustomDataClass
int dbRowId;
Adapter adapter = myListView.getAdapter();
MyCustomDataClass data = (MyCustomDataClass) adapter.getItem(selectedRow);
dbRowId = data.getDatabaseRowId();
// OR
dbRowId = data.rowId;
// OR whatever method the object has for getting the ID.
// OR
View listViewRow = adapter.getView(selectedRow);
TextView dbRowView = (TextView) listViewRow.findViewById(R.id.rowid);
String dbRowAsString = dbRowView.getText().toString();
dbRowId = Integer.parseInt(dbRowAsString);
您可能還會考慮用戶點擊ListView行,而不是選擇行然後再按下另一個按鈕是否更自然。裏諾的答案可能會更好。
這正是我一直在尋找。非常感謝!多麼偉大的社區。 – spryan 2011-02-24 23:32:27