Jak mogę zaimplementować niestandardowy onClickListener
przycisk Początek paska akcji?
Zrobiłem już getSupportActionBar().setDisplayHomeAsUpEnabled(true);
a teraz chcę przekierować użytkownika do określonej czynności w przypadku kliknięcia przycisku Strona główna.
Próbowałem z:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
item.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Intent i = new Intent();
i.setClass(BestemmingActivity.this, StartActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
}
});
default:
return super.onOptionsItemSelected(item);
}
}
ale nigdy nie wchodzi do onMenuItemClick
.
Zasadniczo robi się to tak, jak w tym linku, ale nadal nie wchodzi w odbiornik.
return true;
return true;
na końcuif
bloku, to jest poprawneUżywam actionBarSherlock , po ustawieniu
supportActionBar.setHomeButtonEnabled(true);
możemy nadpisać metodę onMenuItemSelected:
@Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemId = item.getItemId(); switch (itemId) { case android.R.id.home: toggle(); // Toast.makeText(this, "home pressed", Toast.LENGTH_LONG).show(); break; } return true; }
Mam nadzieję, że to zadziała dla ciebie ~~~ powodzenia
źródło
jeśli używamy paska akcji podanego w systemie, następujący kod działa dobrze
getActionBar().setHomeButtonEnabled(true); @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemId = item.getItemId(); switch (itemId) { case android.R.id.home: //do your action here. break; } return true; }
źródło
Naprawiono: nie ma potrzeby używania pliku
setOnMenuItemClickListener
. Wystarczy nacisnąć przycisk, aby utworzyć i uruchomić działanie poprzez intencję.Bardzo dziękuję wszystkim za pomoc!
źródło
onOptionsItemSelected()
automatycznie. Nie ma potrzeby ręcznej instalacji (to może faktycznie zepsuć sprawę).odpowiada w połowie części tego, co się dzieje. jeśli
onOptionsItemSelected
niehomeAsUp
przycisk kontrolny , gdy aktywność nadrzędna ustawiona w systemie manifest.xml przechodzi do działania nadrzędnego. użyj w ten sposób w tagu aktywności:<activity ... > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.activities.MainActivity" /> </activity>
źródło
Jeśli działa w ICS, musisz jawnie włączyć akcję home. Z dokumentów :
źródło
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
i agetSupportActionBar().setHomeButtonEnabled(true);
Najlepszym sposobem dostosowania paska akcji onClickListener jest opcja OnSupportNavigateUp ()
Ten kod będzie pomocnym linkiem do pomocy w kodzie
źródło
powinieneś usunąć swoje Override onOptionsItemSelected i powtórzyć swoje onCreateOptionsMenu tym kodem
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_action_bar_finish_order_stop, menu); menu.getItem(0).setOnMenuItemClickListener(new FinishOrderStopListener(this, getApplication(), selectedChild)); return true; }
źródło