如何在一个onCreateOptionsMenu(菜单菜单)下添加多个活动

时间:2016-07-04 17:31:06

标签: android android-actionbar oncreate oncreateoptionsmenu

我想在我的Android应用程序中的一个`onCreateOptionsMenu(菜单菜单)下添加多个活动,我已经添加了两个活动,但它们工作正常,但第三个活动不起作用,以下是我的代码

    Double total = 5;
    Double a,b,c,tot;
    a = total*0.80;
    b = total*0.10;
    c = total*0.10;
   tot = a+b+c;
   Int convert = Convert.ToInt32(tot)

menu_main.xml

onCreateOptionsMenu(Menu menu)

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

@Override
public final boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_item_share:
            shareURL();
    }
    if(item.getItemId() == R.id.menu_item_refresh){
        mWebView.reload();
        return true;
    }
    if(item.getItemId() == R.id.share_this_app)
        mShareActionProvider.setShareIntent(getDefaultShareIntent());
    return super.onOptionsItemSelected(item);
}


private void shareURL() {
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_TEXT, mWebView.getUrl());
    startActivity(Intent.createChooser(shareIntent, "Share This Website!"));
    shareIntent.setPackage("com.whatsapp");
}


/** Returns a share intent */
private Intent getDefaultShareIntent(){
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_SUBJECT, "download the app");
    intent.putExtra(Intent.EXTRA_TEXT," play.google.com ");
    return intent;
}

从上面开始,menu_item_share和menu_item_refresh正在运行,但分享此应用无效。

2 个答案:

答案 0 :(得分:0)

可能你错过了这一行 mShareActionProvider.setShareIntent(getDefaultShareIntent()); 下面的返回真实陈述。您可以简单地按照干净的结构来完成任务。

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menu_item_share: {
        shareURL();
        break; //or, return true;
    }
    case R.id.menu_item_refresh: {
        mWebView.reload();
        break; //or, return true;
    }
    case R.id.share_this_app: {
        mShareActionProvider.setShareIntent(getDefaultShareIntent());
        break; //or, return true;
    }
    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:0)

嘿,我认为这会有所帮助...... 你写   的机器人:showAsAction = “从不”
因此,当在菜单图标(工具栏中的三个点)中放置一个图标时会产生错误。 因此,为此属性设置值“always”“ifRoom”。 希望这会奏效: - )