Domanda

Ho questo adattatore per i frammenti:

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

Sto tre per fare un pulsante Indietro uscita con doppio tocco e brindisi in questo modo:

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;

        }

Quello che non posso fare è ottenere il contesto nel brindisi, quindi non posso mostrarlo. Come posso modificare il codice per farlo funzionare? Grazie per le tue risposte!

EDIT1:Ok, questo tutorial quello che sto usando:Androidhivee voglio fare questo metodo di uscita su ogni scheda

È stato utile?

Soluzione 3

devi usare getActivity ()

come questo

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

Altri suggerimenti

Dovresti essere nel Activity contesto (onbackpressed è un metodo di Activity), quindi dovresti cambiare context insieme a this

Prova questo:

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

Puoi usare

getActivity()

o

getActivity().getApplicationContext()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top