عليك استخدام GetActivity ()
مثله
Toast.makeText(getActivity() , ......
سؤال
لدي هذا المحول للشظايا:
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()