Próbuję wywołać funkcję startActivity (myIntent) po kliknięciu przycisku menu, ale moja aplikacja ulega awarii w tym momencie.Jak wywołać aktywność z elementu menu w systemie Android?
Ta sama funkcja startActivity działa dobrze po zwykłym kliknięciu przycisku, więc zakładam, że w przycisku menu brakuje informacji o kontekście? A może jestem tu całkowicie nie na miejscu.
Więc ... jaki jest właściwy sposób, aby pozycja w menu zabrała mnie do określonego działania?
Zrewidowałem mój kod na podstawie wstępnego zestawu porad. Wciąż się zawiesza w tym samym miejscu. Debugger nie wchodzi w klauzulę wyjątku, aplikacja po prostu umiera.
[edytowane za pomocą fragmentu kodu]
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
try{
switch (item.getItemId()) {
case R.id.menuItemLang:
startActivity(new Intent("com.my.project.SETTINGS"));
return true;
default:
return super.onOptionsItemSelected(item);
}
}catch(Exception e){
log(e);
}
}
Proszę zaksięgować pełny stacktr as z powodu awarii i fragment kodu, w jaki sposób rozpoczynasz działanie. –
Będziesz musiał opublikować swój kod i ślad stosu – Falmarri
powinieneś użyć logcat, aby wyświetlić ślad stosu. Jeśli używasz Zaćmienie, możesz przełączyć na perspektywę DDDS lub otworzyć widok logcat. W przeciwnym razie uruchom adb logcat z wiersza poleceń. –