我有一个代码模块,它实现了带导航抽屉的viewpager,但是,当我运行代码时,我得到以下错误
01-26 09:20:02.958: D/AndroidRuntime(18779): Shutting down VM
01-26 09:20:02.959: E/AndroidRuntime(18779): FATAL EXCEPTION: main
01-26 09:20:02.959: E/AndroidRuntime(18779): Process: com.example.tabwithslidingdrawer, PID: 18779
01-26 09:20:02.959: E/AndroidRuntime(18779): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.tabwithslidingdrawer/com.example.tabwithslidingdrawer.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2314)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.access$800(ActivityThread.java:148)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.os.Handler.dispatchMessage(Handler.java:102)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.os.Looper.loop(Looper.java:135)
01-26 09:20:02.959: E/AndroidRuntime(18779): at android.app.ActivityThread.main(ActivityThread.java:5312)
01-26 09:20:02.959: E/AndroidRuntime(18779): …Run Code Online (Sandbox Code Playgroud) 我有一个显示文本的简单应用程序.
该应用程序以一个带有几个选项的主屏幕开始(例如,一个信息按钮,可以显示有关该应用程序的信息,一个浏览按钮,允许用户查看可以显示的所有单个文本).主按钮指向另一个显示文本的屏幕.通过向左和向右滑动,他可以看到不同的文本段落.这是该应用程序的主要目的.
目前我已经实施了ActionBar.我的MainActivity.Java扩展了AppCompatActivity.应用程序中的所有内容都在此活动中.
现在我想这样做,所以ActionBar只出现在"显示"模式下,而不是在启动屏幕或"信息"/"浏览"模式下.
是否可以在应用程序的一个部分中安装ActionBar,而在应用程序的另一部分中没有 ActionBar?(并将其全部保留在相同的活动中?)
我一直在努力做到这一点,但没有用.如果可以,我接下来应该尝试什么?
到目前为止,我尝试过以下方面:
1)创建这个主题
<style name="Theme.AppCompat.NoActionBar" parent="Theme.AppCompat.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并将其应用于MainActivity ...
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.NoActionBar" >
Run Code Online (Sandbox Code Playgroud)
....执行此操作后,ActionBar仍然存在.(这来自这个SO帖子(android:windowNoTitle不会隐藏动作栏与appcompat-v7 21.0.0)
2)另一种尝试是将此添加到onCreate.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
getActionBar().hide();
setContentView(R.layout.activity_main);
Run Code Online (Sandbox Code Playgroud)
这来自于研究这篇SO帖子:( 如何在创建活动之前隐藏操作栏,然后再次显示它?)
有什么建议?