Прежде всего, привет народ, и извините за мой плохой английский, я Brazillian! Я учился здесь в StackOverflow из вопросов других пользователей с тех пор, как я начал работать в Android; но теперь настала моя очередь спросить ...Android SDK - какой ListItem вызвал контекстное меню?
Я сделал звуковое сопровождение из учебника, но решил реализовать новую функцию: Установить как мелодию звонка/уведомление. Я уверен, что у меня не возникнет проблем с установкой ogg-файла в качестве мелодии звонка, потому что я только что увидел ответ об этом здесь. Мой вопрос: как получить идентификатор списка, называемого контекстным меню?
Посмотрите на моем коде (в португальской токе/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, чтобы я мог передать его как целое «положение» ...
Пример:
@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;
}
Я не знаю, был ли я достаточно ясен, или если это возможно, но я уверен, что буду счастлив, если найду способ сделать это.
Заранее спасибо, Лукас.
Большое вам спасибо! Это работает как шарм, но затмение меня исправило: call (int) info.id, item.getItemId() –
теперь у меня возникли проблемы с установкой в качестве мелодии звонка LOL. Просто то, что я, хотя это было бы легко, так как у меня есть текст «res/raw/example.ogg». Я пытался адаптировать код, который я нашел здесь, без успеха ... Можете ли вы мне помочь? –
Я думаю, что невозможно установить частный ресурс вашего приложения в качестве мелодии звонка. Вам нужен звук, который находится в файловой системе. – nandeesh