2017-05-08 77 views
0

当你点击按钮。我想一个项目中调用和执行点击按钮通话项目

我的XML文件:

<menu xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<group android:checkableBehavior="single"> 
    <item android:title="Item" 
     android:id="@+id/nav1" /> 

    <item android:title="Item" 
     android:id="@+id/nav2"/> 

    </group> 
</menu> 

我简单的菜单项:

@Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    if (id == R.id.nav1) { 


    } else if (id == R.id.nav2) { 


    } 

我的按钮:

final Button button1 = (Button) findViewById(R.id.mybutton); 
    button1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      //when click on this button i want executed item with id nave1 
     } 
    }); 

当点击按钮(mybutton)必须调用项目并执行它

+0

请准确解释您想要的内容,我在评论中看到您添加了更多需求(所选项目,滚动到设置项目可见)。至于我,我会认为这是一个不同的问题,这可能已经存在于SO上。 – AxelH

回答

1

使用NavigationView.setCheckedItem()

final Button button1 = (Button) findViewById(R.id.mybutton); 
button1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     navigationView.setCheckedItem(R.id.nav1); 
    } 
}); 

或致电onNavigationItemSelected()自己。

final Button button1 = (Button) findViewById(R.id.mybutton); 
button1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     onNavigationItemSelected(navigationView.getMenu().findItem(R.id.nav1)); 
    } 
}); 
+0

它的工作,但我的菜单项不显示该项目被选中,并没有滚动到位置,因为我有很多项目 – mody

+0

@mody在你的''组'xml中使用'android:checkableBehavior =“single”'。 –

+0

我用过,但没有工作 – mody

0

它简单,你可以这样做,创建一个方法,然后在任何你想要的地方调用它。

private void yourMethodName() { 
     // do your stuff here 
    } 

没有呼叫此

@Override 
    public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    if (id == R.id.nav1) { 
    yourMethodName(); 

    } else if (id == R.id.nav2) { 


    } 

,然后按一下按钮,

final Button button1 = (Button) findViewById(R.id.mybutton); 
    button1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      yourMethodName(); 
     } 
    }); 
+0

我想单击项目为导致1-为了去位置,因为我有很多iten 2 - 为显示该项目被选中 – mody

+0

通过方法中的位置 –

+0

我不明白你 – mody