我有一個使用CursorAdapter的藥物ListView。我的目標是在用戶按下提交按鈕時獲取對所選項目的光標的引用,但我一直得到空值。這裏是我當前的代碼:在ListView中,哪些操作觸發onItemSelected?
mSubmitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Cursor selectedMedication = (Cursor) mMedicationListView.getSelectedItem();
if(selectedMedication != null)
{
MedicationSelectionListener activity = (MedicationSelectionListener) getActivity();
activity.onMedicationSelected(new Medication(selectedMedication));
} else{
Toast.makeText(getActivity(), "Must select a medication.", Toast.LENGTH_SHORT).show();
}
}
});
當此執行,selectedMedication
始終爲空。我已經實現了一個可繪製的selector.xml文件,該文件在按下時改變了項目的背景色,並且工作正常,所以我覺得單擊該項目就足夠了。
我也曾嘗試以下,每個項目被點擊時設置選擇的藥物變量:
mMedicationListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Cursor c = (Cursor) mMedicationListView.getItemAtPosition(position);
if(c.moveToFirst())
mSelectedMedication = new Medication(c);
}
});
這工作得很好,但我覺得它預製一堆毫無意義的操作時,所有我感興趣in是最終選定的項目。應該點擊一個項目觸發器mMedicationListView.onItemSelected()
?如果不是,那麼採取什麼行動來確保發生?
你是什麼意思的「一堆毫無意義的行動」? – Emmanuel 2015-02-11 17:36:34
@Emmanuel比方說,我有一個很大的列表藥物,並由於某種原因,用戶上下選擇每一個。每次我改變那個班級的領域(這不是一個沉重的操作,我都明白了),但是爲什麼當我應該能夠在最後閱讀選定的項目時浪費時間呢? – AdamMc331 2015-02-11 17:38:30