Прежде всего, привет, извините за мой плохой английский, я бразилец!Я изучал здесь, в StackOverflow, вопросы других пользователей с тех пор, как начал работать в Android;но теперь моя очередь спросить ...
Я сделал приложение из звуковой карты из учебника, но я решил реализовать новую функцию: Установить в качестве мелодии звонка / уведомления.Я почти уверен, что у меня не возникнет проблем с установкой ogg-файла в качестве мелодии звонка, потому что я только что увидел ответ об этом здесь ... У меня вопрос, как получить идентификатор элемента списка, который вызвал контекстное меню?
Взгляните на мой код (в португальском toque / notificação означает рингтон / уведомление):
registerForContextMenu(findViewById(android.R.id.list));
...
@Override
public void onCreateContextMenu(ContextMenu menuc, View v,ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menuc, v, menuInfo);
menuc.setHeaderTitle("Usar como");
menuc.add(Menu.NONE, 0, Menu.NONE, "Toque");
menuc.add(Menu.NONE, 1, Menu.NONE,"Notificação");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getTitle() == "Toque") { toque(0,item.getItemId()); }
else if(item.getTitle() == "Notificação") { notificacao(0,item.getItemId()); }
else { return false; }
return true;
}
public void toque(int position,int id){
Sound s = (Sound) mSounds.get(position);
Toast.makeText(this, s.getSoundResourceId(), Toast.LENGTH_SHORT).show();
}
public void notificacao(int position,int id){
Sound s = (Sound) mSounds.get(position);
Toast.makeText(this, s.getSoundResourceId(), Toast.LENGTH_SHORT).show();
}
Итак, как вы можете видеть, я сделал тост, чтобы проверить параметры.Теперь я могу получить res / raw / example.ogg по номеру «0», но я хочу динамически получить идентификатор ListView, чтобы я мог передать его как целое число «position» ...
Пример:
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getTitle() == "Toque") { toque(GET.LISTITEM.ID, item.getItemId()); }
else if (item.getTitle() == "Notificação"){ notificacao(GET.LISTITEM.ID, item.getItemId()); }
else { return false; }
return true;
}
Я не знаю, был ли я достаточно ясен, или возможно ли это, но я уверен, что буду счастлив, если найду способ сделать это.
Заранее спасибо, Лукас.