Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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
Java 我的静态上下文在哪里?_Java_Android_Android Fragments_Fragment - Fatal编程技术网

Java 我的静态上下文在哪里?

Java 我的静态上下文在哪里?,java,android,android-fragments,fragment,Java,Android,Android Fragments,Fragment,我是android编程的新手,我正在尝试使用带有片段的gridviewpager。我的代码是: public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.grid); final Resources res = get

我是android编程的新手,我正在尝试使用带有片段的gridviewpager。我的代码是:

public class Main extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grid);
    final Resources res = getResources();
    GridViewPager pager = (GridViewPager) findViewById(R.id.gridpager);
    pager.setOnApplyWindowInsetsListener(new OnApplyWindowInsetsListener() {
        @Override
        public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
            // Adjust page margins:
            //   A little extra horizontal spacing between pages looks a bit
            //   less crowded on a round display.
            final boolean round = insets.isRound();
            int rowMargin = res.getDimensionPixelOffset(R.dimen.page_row_margin);
            int colMargin = res.getDimensionPixelOffset(round ?
                    R.dimen.page_column_margin_round : R.dimen.page_column_margin);
            pager.setPageMargins(rowMargin, colMargin);

            // GridViewPager relies on insets to properly handle
            // layout for round displays. They must be explicitly
            // applied since this listener has taken them over.
            pager.onApplyWindowInsets(insets);
            return insets;
        }
    });
//        MyPagerAdapter adapter=new MyPagerAdapter();
    pager.setAdapter(new MyPagerAdapter(Activity.getFragmentManager()));
}

public class MyPagerAdapter extends FragmentPagerAdapter {
    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int pos) {
        switch(pos) {

            case 0: return FirstFragment.newInstance("FirstFragment, Instance 1");
            case 1: return SecondFragment.newInstance("SecondFragment, Instance 1");
            case 2: return SecondFragment.newInstance("SecondFragment, Instance 2");
            default: return SecondFragment.newInstance("SecondFragment, Default");
        }
    }

    @Override
    public int getCount() {
        return 3;
    }
  }
}
为了简洁起见,我把一些内容压缩了。错误在这一行:

 pager.setAdapter(new MyPagerAdapter(Activity.getFragmentManager()));
这将返回错误:

无法从静态上下文引用非静态方法“getFragmentManager()”


但我不知道我的代码中什么是静态的。我试着把我能想到的所有东西都分配给变量,但仍然不能得到这个。谢谢你的帮助

活动
是类的名称。通过声明
Activity.getFragmentManager()
,您试图调用类本身的方法,而不是类的特定实例

在您的情况下,您根本不需要
活动。
部分-只需调用
getFragmentManager()
本身:

pager.setAdapter(new MyPagerAdapter(getFragmentManager()));

好的,谢谢。所以现在我在同一个地方得到一个新的错误,说MyPagerAdapter中的MyPagerAdapter(android.support.v4.app.FragmentManager)不能应用于(android.app.FragmentManager)。我已经安装了支持库(我想),这意味着什么呢?你现在有点搞砸了:你的
活动
代码是Android Wear应用程序,而
FragmentPagerAdapter
是手机Android应用程序。如果你想编写一个可穿戴应用程序,你需要实现一个
android.support.Wearable.view.FragmentGridPagerAdapter
,比如而不是
FragmentPagerAdapter
。如果您打算编写手机/平板电脑应用程序,则需要使用
FragmentActivity
getSupportFragmentManager
。好的,非常感谢。哈哈,这就是我从论坛上拿走所有东西得到的。(顺便说一句,我正在尝试制作一款全屏无卡的可穿戴应用。)如果这有助于回答您最初的问题,请务必接受它。祝你构建应用程序好运!