MenuDrawer > wie weiß ich, ob auf ein MenuItem geklickt wurde?

  • Antworten:3
  • Bentwortet
Imagine Box
  • Forum-Beiträge: 346

18.04.2014, 19:54:04 via Website

Hi,

ich versuche mich gerade am MenuDrawer von SimonVT. Leider habe ich bis jetzt einfach nicht verstanden, wie ich erfahre, ob ein Menüeintrag geklickt wurde. Weiß dort jemand Rat?

Das habe ich bis jetzt:

public class MainActivity extends Activity  {
private WebView webView;
private MenuDrawer mDrawer;

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mDrawer = MenuDrawer.attach(this);
    mDrawer.setContentView(R.layout.activity_main);
    mDrawer.setMenuView(R.layout.right_menu);

...

sowie als Layout das hier:

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Blog"
        style="@style/MenuDrawer.Widget.Category" />

    <TextView
        android:id="@+id/item3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_action_reload"
        android:text="Stöbern"
        style="@style/MenuDrawer.Widget.Title" 
        android:onClick="menu_3"/>

...

Danke im Voraus!

— geändert am 18.04.2014, 19:56:45

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.04.2014, 20:07:30 via Website

Da du nicht den Standard Drawer der v4 supp libary benutzt ist es schwierig, dafür solltest du die Api Doc anschauen und so eine Methode wie item Cklicked finden; Es gibt auch solche samples als download

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Imagine Box
  • Forum-Beiträge: 346

18.04.2014, 20:10:48 via Website

Nach Samples habe ich bereits geguckt, jedoch ist die Ordnerstruktur etwas... verwirrend.

Es gibt zum Beispiel folgendes:

protected abstract void onMenuItemClicked(int position, Item item);

protected abstract int getDragMode();

protected abstract Position getDrawerPosition();

private AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mActivePosition = position;
        mMenuDrawer.setActiveView(view, position);
        mAdapter.setActivePosition(position);
        onMenuItemClicked(position, (Item) mAdapter.getItem(position));
    }

sowie

 @Override
protected void onMenuItemClicked(int position, Item item) {
    mContentTextView.setText(item.mTitle);
    mMenuDrawer.closeMenu();
}

und

 @Override
protected void onMenuItemClicked(int position, Item item) {
    if (mCurrentFragmentTag != null) detachFragment(getFragment(mCurrentFragmentTag));
    attachFragment(mMenuDrawer.getContentContainer().getId(), getFragment(item.mTitle), item.mTitle);
    mCurrentFragmentTag = item.mTitle;
    mMenuDrawer.closeMenu();
}

Was davon ist nun das richtige? Und wie verwende ich das?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.04.2014, 21:24:38 via Website

Wie meist du das ? Du musst den Code einfach einfügen und in den onMenuItemClicked teil deinen Code einfügen was bei einem itemCklick passieren soll

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten