首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionBarSherlock ShareActionProvider

ActionBarSherlock ShareActionProvider
EN

Stack Overflow用户
提问于 2013-08-09 02:23:36
回答 1查看 497关注 0票数 0

我在实现ShareActionProvider ActionBarSherlock方面遇到了问题。Ja放了所有的内容,但是当我编译NullPointException的代码时。以下错误:

08-08 23:06:22.315: E/AndroidRuntime(2286):致命例外:主08-08 23:06:22.315: E/AndroidRuntime(2286):com.actionbarsherlock.widget.ShareActionProvider : java.lang.ClassCastException:无法转换为android.view.ActionProvider 08-08 23:06:22.315: E/AndroidRuntime(2286):at android.view.MenuInflater$MenuState.readItem(MenuInflater.java:359) 08-08 23:06:22.315: E/AndroidRuntime(2286):at android.view.MenuInflater.parseMenu(MenuInflater.java:145) 08-08 23:06:22.315: E/AndroidRuntime(2286):android.view.MenuInflater.inflate(MenuInflater.java:95) 08-08 23:06:22.315: E/AndroidRuntime(2286):at br.ftsys.churrascalc.MainActivity.onCreateOptionsMenu(MainActivity.java:136)

我的xml文件位于res/menu/main中:

代码语言:javascript
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:id="@+id/share" 
    android:orderInCategory="100" 
    android:title="@string/share" 
    android:showAsAction="ifRoom"
    android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"/>    

Minha MainActivity:

代码语言:javascript
复制
public class MainActivity extends SherlockActivity{

private ShareActionProvider mShareActionProvider;
. 
.
. 
. 
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {

    getSupportMenuInflater().inflate(R.menu.main, menu);

    mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider();

    /** Getting the target intent */
    Intent intent = getDefaultShareIntent();

    /** Setting a share intent */
    if (intent != null)
        mShareActionProvider.setShareIntent(intent);

    return super.onCreateOptionsMenu(menu);
}

/** Returns a share intent */
private Intent getDefaultShareIntent() {

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_SUBJECT, "Assunto");
    intent.putExtra(Intent.EXTRA_TEXT, "Conteúdo!!!");
    return intent;
}
 }

有谁可以帮我?

EN

回答 1

Stack Overflow用户

发布于 2014-04-07 19:30:14

您在代码中使用的ShareActionProvider不是正确的提供程序。因此,类强制转换异常。这是在MainActivity类中导入不正确的提供程序的结果。只需找出台词:

代码语言:javascript
复制
import android.widget.ShareActionProvider;

并将其替换为:

代码语言:javascript
复制
import com.actionbarsherlock.widget.ShareActionProvider;

就这样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18139263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档