Android 强制关闭作用杆
为什么该程序在启动时强制关闭Android 强制关闭作用杆,android,android-fragments,android-actionbar,Android,Android Fragments,Android Actionbar,为什么该程序在启动时强制关闭 import android.os.Bundle; import android.os.PersistableBundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.ap
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
final ActionBar actionBar = getSupportActionBar();
NPageAdapter nPageAdapter;
ViewPager viewPager;
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nPageAdapter = new NPageAdapter(getSupportFragmentManager());
viewPager = (ViewPager)findViewById(R.id.viewPager);
viewPager.setAdapter(nPageAdapter);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
};
for (int i=0; i<3; i++)
{
actionBar.addTab(actionBar.newTab().setText("Tab "+i).setTabListener(tabListener));
}
}
class NPageAdapter extends FragmentStatePagerAdapter
{
public NPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new NObjectFragment();
Bundle bundle = new Bundle();
bundle.putInt(NObjectFragment.ARG_OBJECT, position);
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getCount() {
return 100;
}
@Override
public CharSequence getPageTitle(int position) {
return "Object "+position;
}
}
public static class NObjectFragment extends Fragment
{
public static final String ARG_OBJECT = "object";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(
R.layout.fragment_object, container, false);
Bundle bundle = getArguments();
((TextView)rootView.findViewById(android.R.id.text1)).setText(Integer.toString(bundle.getInt(ARG_OBJECT)));
return rootView;
}
}
}
嗨。为什么该程序在启动时强制关闭?
你好。为什么该程序在启动时强制关闭?
你好。为什么该程序在启动时强制关闭?正如错误所暗示的,您需要在该活动中使用特定主题
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
final ActionBar actionBar = getSupportActionBar();
NPageAdapter nPageAdapter;
ViewPager viewPager;
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nPageAdapter = new NPageAdapter(getSupportFragmentManager());
viewPager = (ViewPager)findViewById(R.id.viewPager);
viewPager.setAdapter(nPageAdapter);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
};
for (int i=0; i<3; i++)
{
actionBar.addTab(actionBar.newTab().setText("Tab "+i).setTabListener(tabListener));
}
}
class NPageAdapter extends FragmentStatePagerAdapter
{
public NPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new NObjectFragment();
Bundle bundle = new Bundle();
bundle.putInt(NObjectFragment.ARG_OBJECT, position);
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getCount() {
return 100;
}
@Override
public CharSequence getPageTitle(int position) {
return "Object "+position;
}
}
public static class NObjectFragment extends Fragment
{
public static final String ARG_OBJECT = "object";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(
R.layout.fragment_object, container, false);
Bundle bundle = getArguments();
((TextView)rootView.findViewById(android.R.id.text1)).setText(Integer.toString(bundle.getInt(ARG_OBJECT)));
return rootView;
}
}
}
打开values/styles.xml
并更改为类似以下内容:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
这是因为您的活动使用支持包,而您(可能)正试图使用不在其中的主题(支持包)。这可能与holo主题类似。原因:java.lang.IllegalStateException:您需要在该活动中使用theme.AppCompat主题(或后代)。