簡體   English   中英

Android Actionbar菜單項未選擇

[英]Android Actionbar Menu Item not Selecting

我有一個帶有底部菜單導航欄的android Activity,它在三個片段和一個頂部菜單項之間導航,該頂部菜單項應打開一個新活動,但是頂部菜單ActionBar項未響應click事件。 也許缺少什么? 還是應該從片段中處理菜單?

這是我的代碼:

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    // Set Network Connection Listener
    setConnectionListener(this);

    //check the network connectivity when activity is created
    checkConnection();

    BottomNavigationView bottomNavigation = (BottomNavigationView) findViewById(R.id.bottom_navigation);
    bottomNavigation.setOnNavigationItemSelectedListener(this);

    transaction = getSupportFragmentManager().beginTransaction();
    transaction.replace(R.id.frame_layout, HomeFragment.newInstance());
    transaction.commit();

    // Used to select item programmatically
    // bottomNavigation.getMenu().getItem(0).setChecked(true);
}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Log.i(TAG, "Menu Clicked " + item.getItemId());
    switch (item.getItemId()){
        case R.id.tab_cart:
            Intent intent = new Intent(this, CartActivity.class);
            startActivity(intent);
            return true;
    }
    return super.onOptionsItemSelected(item);
}

我的菜單top.xml res菜單文件

<?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"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.shopcentra.activities.MainActivity">
<item
    android:id="@+id/tab_cart"
    android:icon="@mipmap/cart"
    android:title="@string/cart"
    app:actionLayout="@layout/notification_layout"
    app:showAsAction="always">
</item>
</menu>

我看不到您在“ tab_cart”上添加了View.OnClickListener的位置。 如果已設置,請也共享該代碼,否則,請在該視圖上添加一個OnCLickListener,然后查看問題是否仍然存在。
編輯 :在菜單項上添加OnClickListener的代碼:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuItem tabCartMenuItem = menu.findItem(R.id.tab_cart);
    View notificationActionView = menuItem.getActionView();
    notificationActionView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onOptionsItemSelected(tabCartMenuItem));
        }
    });
}

嘗試將此代碼添加到onCreateOptionsMenu()方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM