如何让正确的顶部图标打开新活动而不是显示项目?

时间:2018-05-16 12:39:50

标签: android android-layout

所以,我有这个

enter image description here

在这里我是如何设置它的。

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

我的menu->main.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never" />
</menu>

这是我的onCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.activity_main);
    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle("");


    toolbar.setOverflowIcon(ContextCompat.getDrawable(getApplicationContext(),R.drawable.ic_notifications));
    setSupportActionBar(toolbar);

    DrawerLayout drawer = findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView =  findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

嗯,这是默认设置,现在当我点击铃铛图标时,它会显示来自item的{​​{1}}。 但是,我想要的是,当我点击铃声图标时,它会打开新的活动,而不是显示来自menu.xml的{​​{1}}

我如何实现这一目标?

我想知道为什么我的问题item?我的问题是,如何让正确的顶部图标打开新活动而不是显示项目?

如何从菜单项打开活动

2 个答案:

答案 0 :(得分:1)

您可以使用onOptionsItemSelected()方法

执行此操作
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.action_settings:
            Intent intent = new (CurrentActivity.class, NextActivity.class);
            startActivity(intent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

答案 1 :(得分:0)

menu.xml文件

 db.posts.find({ $text: { $search: 'amaz' } }, (err, results) => {
     return res.json(results); 
  });

在您的活动中添加以下代码。

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/action_settings"
            android:icon="@drawable/bell"
            android:visible="true"
            app:showAsAction="always"
            android:title="bell"/>
    </menu>