Как получить listid itemid на быстрое действие
Я буду использовать quickaction для просмотра списка. Я использую этот пример для быстрого действия: http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/
Но как мне получить идентификатор из моего списка, чтобы использовать его в setOnActionItemClickListener / onItemClick?
Вот код:
ListView mList = (ListView) findViewById(android.R.id.list);
mList.setAdapter(entryAdapter);
//Add action item
ActionItem addAction = new ActionItem();
addAction.setTitle("Add");
addAction.setIcon(getResources().getDrawable(R.drawable.ic_add));
//Show action item
ActionItem accAction = new ActionItem();
accAction.setTitle("Accept");
accAction.setIcon(getResources().getDrawable(R.drawable.ic_accept));
final QuickAction mQuickAction = new QuickAction(this);
mQuickAction.addActionItem(addAction);
mQuickAction.addActionItem(accAction);
//setup the action item click listener
mQuickAction.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() {
public void onItemClick(QuickAction quickAction, int pos, int actionId) {
if (pos == 0) { //Add item selected
Toast.makeText(getApplicationContext(), "Add item selected", Toast.LENGTH_SHORT).show();
} else if (pos == 1) { //Accept item selected
Toast.makeText(getApplicationContext(), "Accept item selected", Toast.LENGTH_SHORT).show();
}
}
});
mList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mQuickAction.show(view);
}
});
2 ответа
Вы можете получить id и позицию в onItemClickListener и сохранить его в переменной: добавьте это перед onCreate:
int myId;
и измените ваш onItemClickListener на это:
mList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
myId=id;
mQuickAction.show(view);
}
});
тогда вы можете использовать myId в качестве идентификатора выбранного элемента в вашем коде.
Когда вы создали ListView, вы должны предоставить ему список или массив элементов, которые будут использоваться для отображения ваших данных. Метод onItemClick выдает номер элемента, по которому вы щелкнули. Вы можете точно узнать, по какому элементу щелкнули, запросив у вашей структуры данных поддержки ListView данные в этой позиции.