Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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 FragmentPagerAdapter获取上下文_Android_Fragmentpageradapter - Fatal编程技术网

Android FragmentPagerAdapter获取上下文

Android FragmentPagerAdapter获取上下文,android,fragmentpageradapter,Android,Fragmentpageradapter,我有这个片段适配器: public class TabsPagerAdapter extends FragmentPagerAdapter { private Context context; public TabsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int index) { switch

我有这个片段适配器:

public class TabsPagerAdapter extends FragmentPagerAdapter {
    private Context context; 

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }


    @Override
    public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Main fragment activity
            return new main();
        case 1:
            // Sensors fragment activity
            return new sensors();
        case 2:
            // Display fragment activity
            return new display();
        case 3:
            // Settings fragment activity
            return new settings();
        }

        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 4;
    }
     }
我正在尝试用双击和吐司的方式按下后退按钮退出:

private static final long DOUBLE_PRESS_INTERVAL = 2000000000;
        private long lastPressTime;

        public void onBackPressed() {
             Toast.makeText(context,
             Resources.getSystem().getString(R.string.kilepes_dupla),
             Toast.LENGTH_SHORT).show();

            long pressTime = System.nanoTime();
            if (pressTime - lastPressTime <= DOUBLE_PRESS_INTERVAL) {
                // this is a double click event
                System.exit(0);

            }
            lastPressTime = pressTime;

        }
private static final long DOUBLE\u PRESS\u INTERVAL=20000000000;
私人长时间;
public void onBackPressed(){
Toast.makeText(上下文,
Resources.getSystem().getString(R.string.kilepes_dupla),
吐司。长度(短)。show();
长按时间=System.nanoTime();

如果(按Time-lastPressTime您必须使用getActivity()

像这样

         Toast.makeText(getActivity() , ......

您应该处于
活动
上下文中(onBackPressed是
活动
的一种方法),因此您应该使用
更改
上下文

getActivity()

试试这个:

public class TabsPagerAdapter extends FragmentPagerAdapter {
private Context context; 

public TabsPagerAdapter(FragmentManager fm, Context mContext) { //add Context to contructor
    super(fm);
context = mContext; //pass context
}

@Override
public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Main fragment activity
            return new main();
        case 1:
            // Sensors fragment activity
            return new sensors();
        case 2:
            // Display fragment activity
            return new display();
        case 3:
            // Settings fragment activity
            return new settings();
        }

        return null;
    }

@Override
public int getCount() {

        // get item count - equal to number of tabs
        return 4;
    }
}

你的按钮在哪里?它在碎片里吗?它是背面的Physicallbutton@David在
FragmentPagerAdapter
FragmentPagerAdapter
类中,您在哪里添加了
onBackPressed()
未为类型TabsPagerAdapterFragment has not onBackPressed定义。这是一种活动方法
public class TabsPagerAdapter extends FragmentPagerAdapter {
private Context context; 

public TabsPagerAdapter(FragmentManager fm, Context mContext) { //add Context to contructor
    super(fm);
context = mContext; //pass context
}

@Override
public Fragment getItem(int index) {

        switch (index) {
        case 0:
            // Main fragment activity
            return new main();
        case 1:
            // Sensors fragment activity
            return new sensors();
        case 2:
            // Display fragment activity
            return new display();
        case 3:
            // Settings fragment activity
            return new settings();
        }

        return null;
    }

@Override
public int getCount() {

        // get item count - equal to number of tabs
        return 4;
    }
}