4
我有一個數據庫,用於跟蹤用戶的提醒數據(提醒名稱,註釋,日期,時間等)。第一列是主鍵(_ID)。 ListView控件是從數據庫填充,它顯示了一組簡單的行與提醒的姓名(或名稱),像這樣:獲取選定的ListView項目的ID(使用SQLite數據庫填充數據)
倒垃圾。
步行的狗。
吃午飯。
等
現在我的問題是,如何讓我的應用程序來找出哪些提醒已被點擊?當單擊一行時,我需要從我的數據庫中找到它的主鍵(_ID列),並能夠檢索該行中的所有數據。
到目前爲止,我知道我需要使用onItemClick來檢測點擊。但是,我怎樣才能獲得被點擊的項目的主鍵值(_ID)?我當前的代碼如下所示:
final Context context = this;
//DB Connectivity variables.
protected RemindersDAO remindersDAO;
protected SimpleCursorAdapter remindersCursorAdapter;
public ListView viewRemindersListView;
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_local_reminders);
// Get rid of the app title in the action bar.
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
viewRemindersListView = (ListView) findViewById(R.id.listview_view_local_reminders);
remindersDAO = new RemindersDAO(this);
Cursor cursor = remindersDAO.all(this);
remindersCursorAdapter = new SimpleCursorAdapter(this,
R.xml.view_reminders_item_layout,
cursor, new String [] { RemindersDAO.NAME },
new int[] { R.id.view_reminders_item_text });
viewRemindersListView.setAdapter(remindersCursorAdapter);
}
@Override
public void onItemClick(AdapterView<?> listView, View view, int position, long arg3) {
remindersDAO = new RemindersDAO(this);
Cursor cursor = remindersDAO.all(this);
int idColIndex = cursor.getColumnIndex(RemindersDAO._ID);
int rowId = cursor.getInt(idColIndex);
}
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.activity_view_local_reminders, menu);
return super.onCreateOptionsMenu(menu);
}
public boolean onOptionsItemSelected(MenuItem item) {
//Set the classes that are called from each actionbar item.
switch (item.getItemId()) {
case R.id.local_reminders_actionbar_go_advanced:
Intent i=new Intent(this, AdvancedNewReminder.class);
startActivity(i);
return true;
case R.id.local_reminders_actionbar_simple_reminder:
Intent k = new Intent(this, QuickNewReminder.class);
startActivity(k);
return true;
/* case R.id.local_reminders_actionbar_google_tasks:
showGoogleTasksBetaDialog();
return true; */
}
return false;
}
@Override
public void onBackPressed() {
return;
}
}
感謝您的幫助!