Как получить listid itemid на быстрое действие - PullRequest
0 голосов
/ 25 марта 2012

Я буду использовать 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 ]

1 голос
/ 25 марта 2012

Вы можете получить идентификатор и позицию в onItemClickListener и сохранить их в переменной: добавить это до создания:

int myId;

и измените свой onItemClickListener на это:

mList.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    myId=id;
    mQuickAction.show(view);
    }
});

тогда вы можете использовать myId в качестве идентификатора кликаемого элемента в вашем коде.

0 голосов
/ 25 марта 2012

Когда вы создали ListView, вы должны предоставить ему список или массив элементов, которые будут использоваться для отображения ваших данных.Метод onItemClick дает вам номер элемента, по которому вы щелкнули.Вы можете точно узнать, по какому элементу щелкнули, запросив в вашей структуре вспомогательных данных ListView данные в этой позиции.

...