Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 强制关闭作用杆_Android_Android Fragments_Android Actionbar - Fatal编程技术网

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主题(或后代)。