Pertanyaan Android memeriksa pengguna yang masuk sebelumnya, yang lain memulai aktivitas masuk


Saya ingin aktivitas masuk dimulai ketika pengguna memulai aplikasi tetapi belum masuk sebelumnya. Jika proses masuk yang sukses telah selesai sebelumnya, aplikasi akan melewati halaman login dan pindah ke MainMenu.java. Apa yang saya miliki sekarang adalah:

    public class Login extends Activity implements OnClickListener, TaskCompleteCallback{

     first_time_check();

...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.configure);

    ...}

private boolean first_time_check() {    
    String first = mPreferences.getString("first", null);
        if((first == null)){
            Intent i = new Intent(Login.this, MainMenu.class);
             startActivity(i);
        }
        return false;
    }

...
        SharedPreferences.Editor editor = mPreferences.edit();
        editor.putString("first", value);
    ...

        editor.commit();        

        // Close the activity
        Intent i = new Intent(Login.this, MainMenu.class);
         startActivity(i);
    }           

Tapi saya mendapatkan FCs '. Apakah ada yang salah dengan cara saya menerapkan SharedPreferences?


32
2017-07-16 15:56


asal


Jawaban:


Kode Anda tidak pernah memanggil itu first_time_check(), dengan demikian forward otomatis dalam kasus pengguna yang kembali tidak berfungsi.

Anda bisa masuk onCreate() melakukan

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    first_time_check();

    setContentView(R.layout.configure);

    ...}

Jadi untuk pengguna baru, first_time_check() akan meneruskannya ke halaman masuk, sebaliknya tata letak saat ini akan ditampilkan dan dia bisa melanjutkan di halaman ini.


13
2017-07-16 16:07



Anda menggunakan preferensi bersama. Itu bagus.

Ada contoh kecil yang diberikan di tautan ini. Itu mungkin akan memecahkan masalah.

http://developer.android.com/guide/topics/data/data-storage.html

Pada dasarnya, saya tidak melihat Anda membaca nilai yang disimpan. Anda menyimpannya dan kemudian melakukannya. Tetapi tidak ada kode di mana Anda membacanya. Hanya ketika Anda membacanya, Anda dapat memutuskan aktivitas mana yang harus diluncurkan. Anda harus memanggil first_time_check () untuk menyelesaikan ini.

Semoga saya bisa membantu Anda.


4
2017-07-16 16:08



Anda dapat menyimpan rincian masuk dalam metode onSaveInstanceState () dan kemudian mengembalikannya ketika aktivitas Anda dimulai ulang. Misalnya di dalamRestore ().


0
2018-02-25 09:16



Ini bisa dilakukan dengan dua cara. Salah satunya adalah menyimpannya dalam variabel global dan kedua adalah menyimpan data dalam preferensi bersama. Lihat ini contoh.


0
2018-05-15 11:38