0

单击操作栏中的共享图标后,我想调用一个活动。为此,我为 Android 2.2+ 创建了一个名为“flip”的菜单,其中包含一个名为“menu_share”的项目。翻转菜单在名为 的第一个活动中膨胀'ShareActivity'。在此之后,我想在单击shareicon操作栏中但图标没有响应后调用其他活动。

菜单 xml 文件的代码。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto=" >

    <item android:id="@+id/menu_share"
          android:title="share"
          android:icon="@drawable/shar"
          yourapp:showAsAction="ifRoom"
          yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
</menu>

第一项活动的代码。

public class ShareActivity extends ActionBarActivity {
    SocialAuthAdapter adapter;
    EditText edit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_share);

        ActionBar ab=getSupportActionBar();
        ab.setBackgroundDrawable(new     ColorDrawable(getResources().getColor(android.R.color.transparent)));
        ab.setDisplayHomeAsUpEnabled(true);
        ab.setDisplayShowTitleEnabled(false);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.flip, menu);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
            case android.R.id.home:
                super.onBackPressed();
                return true;
            case R.id.menu_share:
                startActivity(new Intent(this,ShActivity.class));
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

}
4

1 回答 1

1

你已经设置了一个 ActionProvider yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"。这很可能会拦截事件,从而阻止您的 Activity 调用onOptionsItemSelected().

由于您想启动自己的 Activity 而不是使用 Android 的默认共享行为,因此只需删除此行。

于 2013-10-21T13:47:51.890 回答