我想用Android v7 appcompat库实现ActionBar,以支持Android> = 2.1的ActionBar。
我的应用程序从MainActivity开始,其中包含一个黑暗的操作栏,一些信息和一个开始按钮。
下一个活动是MenuActivity,其中还包含深色的操作栏和一些可滑动的操作栏选项卡
这是我的DarkActionBar主题的manifest.xml:
<application
android:icon="@mipmap/ic_launcher"
android:label="Hello World"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar">
<activity
android:name=".MainActivity"
android:label="Hello World">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".gui.MenuActivity"
android:label="Hello World" />
</application>
这是MainActivity之后的MenuActivity,它还包含操作栏以及一些导航选项卡:
package myapp.gui;
import android.support.v4.app.FragmentTransaction;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
import myapp.R;
public class MenuActivity extends ActionBarActivity implements ActionBar.TabListener {
AppSectionsPagerAdapter mAppSectionsPagerAdapter;
ViewPager mViewPager;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mAppSectionsPagerAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
actionBar.addTab(actionBar.newTab().setText("Home").setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("Imprint").setTabListener(this));
}
...
}
如果我启动应用程序,MainActivity可以工作,但是在单击开始按钮并加入MenuActivity之后,出现以下错误:
java.lang.RuntimeException:无法启动活动ComponentInfo {myapp.gui.MenuActivity}:java.lang.IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)。
我找到了一些解决方案,但不适合我的问题。有人可以帮我吗?
我还想知道我的解决方案是最新的还是过时的?
谢谢 :)
将@android:style/Theme.Holo.Light.DarkActionBar
您的AndroidManifest.xml替换为@style/Theme.AppCompat.Light.DarkActionBar
确保您的build.gradle中具有以下依赖项: compile 'com.android.support:appcompat-v7:22.1.1'
编辑:也检查Knossos的第一条评论!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句