使用操作栏中的图标按钮导航到另一个活动

Posted

技术标签:

【中文标题】使用操作栏中的图标按钮导航到另一个活动【英文标题】:Using a icon button in actionbar to navigate to another activity 【发布时间】:2019-08-30 10:02:07 【问题描述】:

关于如何在我的活动中编写代码以实际实现从该活动转到我的主页的 onClick 事件,我遇到了问题。我应该在我的 mainactivity 中添加什么来实现 onclick 以转到另一个 Activity?

搜索菜单.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_search"
    android:title="Search"
    android:icon="@android:drawable/ic_menu_search"
    app:showAsAction="always|collapseActionView"
    app:actionViewClass="android.support.v7.widget.SearchView" />

<item
    android:id="@+id/action_home"
    android:title="Home"
    android:icon="@drawable/ic_home2"
    app:showAsAction="always|collapseActionView" />

</menu>

活动:

 @Override
public boolean onCreateOptionsMenu(Menu menu) 
    getMenuInflater().inflate(R.menu.searchmenu, menu);

    final MenuItem myActionMenuItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) myActionMenuItem.getActionView();

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() 
        @Override
        public boolean onQueryTextSubmit(String text) 
            return false;
        

        @Override
        public boolean onQueryTextChange(String newText) 
            mAdapter.getFilter().filter(newText);
            return true;
        
    );
    return super.onCreateOptionsMenu(menu);

@Override
public boolean onOptionsItemSelected(MenuItem item) 
    switch (item.getItemId()) 

        case R.id.action_home:

            startActivity(new Intent(AuctionList.this,SignIn.class));
            return true;

        default:
            break;
    

    return false;

【问题讨论】:

看看this Handling a Menu Item Click Event - Android的可能重复 【参考方案1】:

你可能想试试这个:

 public boolean onCreateOptionsMenu(Menu menu) 
    getMenuInflater().inflate(R.menu.searchmenu, menu);
    return true;


    @Override
    public boolean onOptionsItemSelected(MenuItem item) 
        switch (item.getItemId()) 

            case R.id.action_home:

                // Do menu item stuff here
                return true;

            default:
                break;
        

        return false;
    

【讨论】:

java.lang.RuntimeException:无法启动活动 ComponentInfocom.example.jianminmong.aucon/com.example.jianminmong.aucon.SignIn:java.lang.NullPointerException:尝试调用虚拟方法'java.lang.String android.os.Bundle.getString(java.lang.String)' 在空对象引用上 @saapmon 请添加堆栈跟踪并更新您的问题【参考方案2】:

试试这个代码.. 此代码在活动中使用..

 public boolean onCreateOptionsMenu(Menu menu) 
getMenuInflater().inflate(R.menu.searchmenu, menu);
return true;

@Override
public boolean onOptionsItemSelected(MenuItem item) 
    switch (item.getItemId()) 

        case R.id.action_home:

            // Do menu item stuff here
            return true;

        default:
            break;
    

    return false;

片段中使用的以下代码..

override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) 
    inflater?.inflate(R.menu.search_menu, menu) // define menu file name

//点击事件句柄

override fun onOptionsItemSelected(item: MenuItem?): Boolean 

    when (item!!.itemId) 
        R.id.mnSearchProduct -> 
          // call your fragment.
        
    

    return super.onOptionsItemSelected(item)


【讨论】:

我有错误。不知道为什么。它不在活动中,它在我想去的活动中出错。

以上是关于使用操作栏中的图标按钮导航到另一个活动的主要内容,如果未能解决你的问题,请参考以下文章

导航栏中的 1 个按钮未显示悬停、按下和活动状态

投射活动图标未显示在操作栏中

Bootstrap / jQuery:在导航栏中滑动“活动”状态

应用ActionBar中的返回按钮

使用 router.navigate 时更改导航栏中的活动选项卡

当我放一个 href 时,jQuery 导航栏中的活动类不起作用