LayoutInflater Onclick不工作

时间:2016-04-27 11:04:59

标签: android onclick layout-inflater

我有2 xml一个主xml和一个菜单xml。我想从菜单xml到主xml活动获取click事件。有没有办法解决这个问题。

主页

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);
        }
    });

1 个答案:

答案 0 :(得分:0)

Activity类为我们提供了两种方法来充气/显示菜单项并使用它们或为它们分配一些任务。他们是:

  1. onCreateOptionsMenu(菜单菜单)
  2. onOptionsItemSelected(MenuItem item)
  3. onCreateOptionsMenu()方法负责通过MenuInflater类的帮助创建和扩充菜单。

    onOptionsItemSelected()方法负责为每个菜单项分配任务。每个菜单项都通过其唯一ID来识别。

    为了在任何Activity中显示和使用菜单,两个方法都需要被覆盖,如下所示:

    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);
           }
        }
    
    }
    

    只要用户点击或点击任何菜单项,Android操作系统就会调用onOptionsItemSelected()方法,然后该方法将匹配该特定菜单项的ID。然后将执行相应案例中指定的一组陈述。

    有关详细信息,请访问以下链接:

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

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