如何在抽屉布局中放置项目的事件?

时间:2016-03-03 06:05:04

标签: android android-fragments

我的项目中有抽屉布局。

我想通过点击drawerlayout中的项目来放置一些事件。

我想我应该使用onNavigationItemSelected(MenuItem menuItem)方法,但我不知道该怎么做。

例如,我希望在点击其中一个项目后显示一个对话框并显示一些文本视图,并设置一个按钮以引导用户访问我的网站。

或者我想通过推送其中一项来引导他们进入另一项活动。

2 个答案:

答案 0 :(得分:1)

为了让您在编写代码时不会感到困惑,我建议您使用应用中的默认导航抽屉

   @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();
        if(id == R.id.your_id){
            AlertDialog.Builder builder1 = new AlertDialog.Builder(context);
            builder1.setMessage("Write your message here.");
            builder1.setCancelable(true);

            builder1.setPositiveButton(
                    "Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                        }
                    });

            builder1.setNegativeButton(
                    "No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                        }
                    });

            AlertDialog alert11 = builder1.create();
            alert11.show();


            //or if your want to call new activity, do this just call the intent
            Intent intent = new Intent(this, NewActivity.class);
            startActivity(intent);
        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;

    }

您可以在id

中找到导航抽屉res/menu/activity_main_drawer.xml

已编辑: 这是如何引导用户访问您的网站:

yourButton.setOnClickListener(new OnClickListener){
    @Override
    public void onClick(View v) {
    String url = "your_website_url";
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse(url));
    startActivity(intent); // on fragment do : getActivity.startActivity(intent);
  }
}

希望它有效:)

答案 1 :(得分:0)

试试这个

   @Override
            public boolean onNavigationItemSelected(MenuItem item) {
                // Handle navigation view item clicks here.
                int id = item.getItemId();

                if (id == R.id.nav_item_id1) {
                    // Handle the action
                    Toast.makeText(getApplicationContext() ,"nav_item_id1 Clicked" ,Toast.LENGTH_LONG).show();

                } else if (id == R.id.nav_item_id2) {
                // Handle the action

                 Toast.makeText(getApplicationContext() ,"nav_item_id2 clicked" ,Toast.LENGTH_LONG).show();

                } 


            }
        }

希望这对你有所帮助