2017-05-08 78 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