我在实现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中:
<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:
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;
}
}有谁可以帮我?
发布于 2014-04-07 19:30:14
您在代码中使用的ShareActionProvider不是正确的提供程序。因此,类强制转换异常。这是在MainActivity类中导入不正确的提供程序的结果。只需找出台词:
import android.widget.ShareActionProvider;并将其替换为:
import com.actionbarsherlock.widget.ShareActionProvider;就这样
https://stackoverflow.com/questions/18139263
复制相似问题