2013-10-21 116 views
0

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

菜单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); 
     } 
    } 

} 

回答

1

您已经设置了一个带有yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"的ActionProvider。这很可能会拦截事件,从而阻止您的活动接到onOptionsItemSelected()的呼叫。

既然您想开始自己的活动,而不是使用Android的默认共享行为,只需删除此行即可。

+0

感谢您的解决方案 – Vishwajeet

+0

@Vishwajeet,我有一个类似的问题,除了我想使用默认的共享行为。当我添加ShareActionProvider时,我不能再点击共享图标。任何想法为什么发生这种情况? – snapplex

+0

@snapplex,我建议用相关的代码创建一个新问题。 –