ja ustawić własny widok na jedną z moich actionbar MenuBar jak tennie onOptionsItemSelected uzyskiwanie nazywane przy użyciu widoku niestandardowego działania
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.loop_thread, menu);
ImageView iv = (ImageView)(getLayoutInflater().inflate(R.layout.image_container, null));
menu.findItem(R.id.action_filter).setActionView(iv);
...
ale kiedy dotknij tego elementu menu w mojej aplikacji, onOptionsItemSelected()
nie zostanie wywołana. (Sprawdziłem to poprzez ustawienie punktu przerwania na początku metody). Jeśli dotknę innych przycisków, na pasku akcji zostanie wywołana metoda onOptionsItemSelected().
oto kod xml fo RMY widoku niestandardowego:
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ibtnFilterMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:src="@drawable/btn_action_down_arrow"
style = "@android:style/Widget.ActionButton"/>
Ja również próbował ustawienie widoku działania na pliku menu xml:
<item android:id="@+id/action_filter"
android:title="@string/filter_options"
android:actionLayout="@layout/image_container"
android:orderInCategory="100"
android:showAsAction="ifRoom" />
Uwaga: Wiem, że mogę to zrobić obraz można kliknąć i ręcznie ustawić dla niego metodę onClickListener, ale ze względu na proces uczenia się, chcę dojść do sedna.
A jak wygląda twoja metoda 'onOptionsItemSelected()'? – Sajmon
To nie ma znaczenia, mam punkt przerwania ustawiony na początku metody i nie jest on w ogóle wywoływany. – Siavash
Czy wypróbowałeś metodę 'setActionView', która akceptuje identyfikator zasobu zamiast widoku, nadmuchujesz ręcznie? –