我的项目中有抽屉布局。
我想通过点击drawerlayout中的项目来放置一些事件。
我想我应该使用onNavigationItemSelected(MenuItem menuItem)
方法,但我不知道该怎么做。
例如,我希望在点击其中一个项目后显示一个对话框并显示一些文本视图,并设置一个按钮以引导用户访问我的网站。
或者我想通过推送其中一项来引导他们进入另一项活动。
答案 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();
}
}
}
希望这对你有所帮助