2016-04-27 155 views
0

我有2個XML一個主要的XML和一個菜單XML。我想從菜單xml獲取點擊事件到主要的xml活動。有什麼辦法可以解決這個問題。LayoutInflater Onclick不工作

主網頁

Main Home Page

菜單頁面enter image description here

現在點擊菜單頁面按鈕事件,我想在我的主家活動頁面。

我做過這樣的

View otherLayout = LayoutInflater.from(this).inflate(R.layout.menu_layout,null); 

    Button tstclick = (Button) otherLayout.findViewById(R.id.textclick);   
    tstclick.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      //Your thing 

      System.exit(0); 
     } 
    }); 
+0

沒關係,先展示你的工作 –

+0

查看otherLayout = LayoutInflater.from(本).inflate(R.layout.menu_layout ,空值); \t \t \t \t Button tstclick =(Button)otherLayout.findViewById(R.id.textclick); \t \t \t \t tstclick.setOnClickListener(新View.OnClickListener(){ \t \t \t \t \t @覆蓋 \t \t公共無效的onClick(查看視圖){ \t \t //你的事 \t \t \t \t \t系統。出口(0); \t \t} \t \t}); –

+0

你想在工具欄中的菜單項? –

回答

0

Activity類爲我們提供了兩種方法來膨脹/顯示菜單項,並與他們的工作或分配一些任務給他們。它們是:

  1. onCreateOptionsMenu(菜單菜單)
  2. onOptionsItemSelected(菜單項項)

onCreateOptionsMenu()方法負責創建和MenuInflater類的幫助下膨脹的菜單。

onOptionsItemSelected()方法負責爲每個菜單項分配任務。每個菜單項都通過其唯一ID進行標識。

爲了顯示和在任何活動與菜單的工作,這兩種方法需要重寫爲如下所示:

public class MainActivity extends AppCompatActivity { 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem menuItem) { 
     switch (menuItem.getItemId()) { 
     // All your menu items will come here. Each menu item ID will become a separate case in the Switch case 
     default: 
      return super.onOptionsItemSelected(menuItem); 
     } 
    } 

} 

一旦用戶點擊或敲擊任何菜單項時,onOptionsItemSelected()方法被Android OS調用,然後該特定菜單項的ID將在該方法中匹配。然後執行相應案例中指定的一組陳述。

欲瞭解更多信息請訪問以下鏈接:

http://developer.android.com/guide/topics/ui/menus.html

http://developer.android.com/reference/android/view/MenuInflater.html

+0

我正在使用滑動菜單 –

+0

https://github.com/jfeinstein10/SlidingMenu這一個 –

+0

對不起,我沒有看到。 –