繁体   English   中英

Android:在ActionBarSherlock项目中,Android 2.3上的Button的findViewById返回null

[英]Android: findViewById for a Button returns null on Android 2.3 in ActionBarSherlock project

我正在开发目标为4.2.2的Android项目,但最低支持版本为2.3。 该项目大量使用ActionBarSherlock库。 在清单文件中,我写:

 android:theme="@style/Theme.Sherlock" >

当我在Android 4.2.2设备和Android 4.0上测试我的项目时,一切正常运行,但是当我尝试在Android 2.3上运行该应用程序时,它崩溃并显示下一条日志: 在此处输入图片说明

在调试过程中,我注意到自定义ActionBar(custom_bar)上的某些按钮为null。 我使用以下代码创建自定义ActionBar:

 ActionBar theBar = getSupportActionBar();
    theBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    theBar.setCustomView(R.layout.custom_bar);

那么如何解决此问题呢?某些ActionBarSherlock库功能是否与2.3兼容?

文档

应该在清单中为整个应用程序或基于每个活动定义主题。 您还可以在调用super.onCreate(Bundle)之前在每个活动的代码中定义主题。 对于从“ Sherlock”活动基类之一扩展并打算使用操作栏的每个活动,都必须执行此操作。 有关如何指定主题的更多信息,请参见官方Android文档。

您是否在onCreate方法中指定了它?

@Override
public void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.Theme_Sherlock);
    super.onCreate(savedInstanceState);
   //other stuff here
}

从日志中清除,您必须在清单文件中使用Sherlock指定它们的设置,例如Theme.Sherloclk.Light等。

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM