Używam biblioteki ActionBarSherlock i postępuję zgodnie z zalecanymi instrukcjami here i here, aby umożliwić nawigację do poprzedniego ekranu.ActionBarSherlock: OnOptionsItemSelected nie rozpoznaje obiektu R.id.home
Mój kod wygląda następująco:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
i
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// This callback is used only when mSoloFragment == true (see
// onActivityCreated above)
switch (item.getItemId()) {
case android.R.id.home:
// App icon in Action Bar clicked; go up
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // Reuse the
// existing
// instance
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
Ale R.id.home nie jest rozpoznawany i domu pojawia się na czerwono. : -/Jeśli używam natywnego paska akcji, deklaracja macierzysta przenosi mnie do pliku ids.xml. Ale tutaj deklaracja nie zostanie znaleziona podczas korzystania z ActionBarSherlock Activity. Czy czegoś brakuje?
Dało mi to sugestię jako R.id.homeAsUp, wybrałem to i zostało zapisane. Zaktualizuję ten wątek, gdy dowiem się, czy działa. – buggydroid
Obawiam się, że to nie jest poprawna odpowiedź. android.R.id.home jest w porządku. Podejrzewam, że minSdkVersion jest zbyt niska. Powinien wynosić 11 lub więcej. –
@Frank: jeśli użyłeś actionbarsharelock, to min sdk jest 8. am i tak? –