سؤال

لدي هذا المحول للشظايا:

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;

        }

ما لا يمكنني القيام به هو الحصول على السياق في الخبز المحمص ، لذلك لا يمكنني إظهاره. كيف يمكنني تعديل الكود للحصول على العمل؟ شكرا لإجاباتك!

EDIT1:حسنًا ، هذا البرنامج التعليمي ما أستخدمه:Androidhiveوأريد أن أجعل طريقة الخروج هذه في كل علامة تبويب

هل كانت مفيدة؟

المحلول 3

عليك استخدام GetActivity ()

مثله

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

نصائح أخرى

يجب أن تكون في Activity السياق (onbackpressed هو طريقة Activity) ، لذلك يجب أن تتغير context مع this

جرب هذا:

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;
    }
}

يمكنك استخدام

getActivity()

أو

getActivity().getApplicationContext()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top