Вопросы по созданию интерфейса регистрации и входа с использованием SharedPreferences - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу создать интерфейс регистрации и входа. Сначала введите правильный номер счета и пароль в формате регистрации в интерфейсе регистрации и сохраните 10 наборов номеров счетов и паролей в общих настройках, используя int idpwi и switch соответственно. Затем в интерфейсе входа в систему введите определите, правильный ли пароль учетной записи. Похоже, что в интерфейсе регистрации не возникает ошибка, когда я нажимаю на publi c void gameindexpage при нажатии в интерфейсе входа в систему. Ошибка Вот мой код

интерфейс регистрации

public class Signup extends AppCompatActivity {
    private Button esignupbtn , ebackloginmenu ;
    private EditText esignid , esignpw , esignpw2 ;
    private TextView esignmessage ;
    private String signidstring , signpwstring , signpw2string ;
    private int idpwi ;

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

        esignupbtn = (Button)findViewById(R.id.esignupbtn);
        ebackloginmenu = (Button)findViewById(R.id.ebackloginmenu);
        esignid = (EditText)findViewById(R.id.esignid);
        esignpw = (EditText)findViewById(R.id.esignpw);
        esignpw2 = (EditText)findViewById(R.id. esignpw2);
        esignmessage = (TextView)findViewById(R.id.esignmessage);

    }
    public void backmain(View v){
        Intent itbackmain = new Intent(Signup.this ,  MainActivity.class);
        startActivity(itbackmain);
    }
    public void esignup(View v){
        signidstring = esignid.getText().toString();
        signpwstring =  esignpw.getText().toString();
        signpw2string = esignpw2.getText().toString();

        if(signidstring.length() != 0 && signpwstring.length() != 0 && signpw2string.length() !=0 && signpwstring.equals(signpw2string)){
            SharedPreferences info = getSharedPreferences("Info", MODE_PRIVATE);
            idpwi = info.getInt("Idpwi",0);

            switch(idpwi) {
                case 0:
                    info.edit()
                            .putString("ID1",  signidstring)
                            .commit();
                    info.edit()
                            .putString("PW1",   signpwstring)
                            .commit();
                    break;
                case 1:
                    info.edit()
                            .putString("ID2", signidstring)
                            .commit();
                    info.edit()
                            .putString("PW2",   signpwstring)
                            .commit();
                    break;
                case 2:
                    info.edit()
                            .putString("ID3", signidstring)
                            .commit();
                    info.edit()
                            .putString("PW3",   signpwstring)
                            .commit();
                    break;
                case 3:
                    info.edit()
                            .putString("ID4", signidstring)
                            .commit();
                    info.edit()
                            .putString("PW4",   signpwstring)
                            .commit();
                    break;
                case 4:
                    info.edit()
                            .putString("ID5",  signidstring)
                            .commit();
                    info.edit()
                            .putString("PW5",   signpwstring)
                            .commit();
                    break;
                case 5:
                    info.edit()
                            .putString("ID6",  signidstring)
                            .commit();
                    info.edit()
                            .putString("PW6",   signpwstring)
                            .commit();
                    break;
                case 6:
                    info.edit()
                            .putString("ID7",  signidstring)
                            .commit();
                    info.edit()
                            .putString("PW7",   signpwstring)
                            .commit();
                    break;
                case 7:
                    info.edit()
                            .putString("ID8",  signidstring)
                            .commit();
                    info.edit()
                            .putString("PW8",   signpwstring)
                            .commit();
                    break;
                case 8:
                    info.edit()
                            .putString("ID9",  signidstring)
                            .commit();
                    info.edit()
                            .putString("PW9",   signpwstring)
                            .commit();
                    break;
                case 9:
                    info.edit()
                            .putString("ID10",  signidstring)
                            .commit();
                    info.edit()
                            .putString("PW10",   signpwstring)
                            .commit();
                    break;
            }
            idpwi++;
            info.edit().putInt("Idpwi",idpwi).commit();
            Toast t = Toast.makeText(Signup.this,"已成功註冊", Toast.LENGTH_LONG);
            t.show();
            Intent itbundle = new Intent(this, MainActivity.class);
            startActivity(itbundle);
            }else{
            Toast f = Toast.makeText(Signup.this,"註冊失敗,輸入錯誤", Toast.LENGTH_LONG);
            f.show();
        }
    }
}

интерфейс входа

public class MainActivity extends AppCompatActivity {
    private Button loginbtn , signupbtn , aboutgamebtn ;
    private EditText loginid , loginpw ;
    private String getid , getpw ;
    private String[] takeid = new String[11];
    private String[] takepw = new String[11];
    private int idi , pwi ;
    private int getidpwi;
    private String esignid, esignpw ;

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

        loginbtn = (Button)findViewById(R.id.loginbtn);
        signupbtn = (Button)findViewById(R.id.signupbtn);
        aboutgamebtn = (Button)findViewById(R.id.aboutgamebtn);
        loginid = (EditText)findViewById(R.id.loginid);
        loginpw = (EditText)findViewById(R.id.loginpw);

    }
    public void aboutgamepage(View v){
        Intent itaboutgame = new Intent(MainActivity.this ,  aboutgame.class);
        startActivity(itaboutgame);
    }
    public void signuppage(View v){
        Intent itsignup = new Intent(MainActivity.this ,  Signup.class);
        startActivity(itsignup);
    }
    public void gameindexpage(View v){

        getid = loginid.getText().toString();
        getpw = loginpw.getText().toString();
        SharedPreferences info = getSharedPreferences("Info", MODE_PRIVATE);

        takeid[1] = info.getString("ID1", "NULL");
        takepw[1] = info.getString("PW1", "NULL");
        takeid[2] = info.getString("ID2", "NULL");
        takepw[2] = info.getString("PW2", "NULL");
        takeid[3] = info.getString("ID3", "NULL");
        takepw[3] = info.getString("PW3", "NULL");
        takeid[4] = info.getString("ID4", "NULL");
        takepw[4] = info.getString("PW4", "NULL");
        takeid[5] = info.getString("ID5", "NULL");
        takepw[5] = info.getString("PW5", "NULL");
        takeid[6] = info.getString("ID6", "NULL");
        takepw[6] = info.getString("PW6", "NULL");
        takeid[7] = info.getString("ID7", "NULL");
        takepw[7] = info.getString("PW7", "NULL");
        takeid[8] = info.getString("ID8", "NULL");
        takepw[8] = info.getString("PW8", "NULL");
        takeid[9] = info.getString("ID9", "NULL");
        takepw[9] = info.getString("PW9", "NULL");
        takeid[10] = info.getString("ID10", "NULL");
        takepw[10] = info.getString("PW10", "NULL");

        for(int i=1;i<=10;i++){
            if(getid.equals(takeid[i])){
                idi=i;
            }
            if(getpw.equals(takepw[i])){
                pwi=i;
            }
        }

        if(getid.length() != 0 && getpw.length() != 0){
          if(idi==pwi){
              Toast lt = Toast.makeText(MainActivity.this,"登入成功", Toast.LENGTH_LONG);
              lt.show();
              Intent itgameindex = new Intent(MainActivity.this ,  gameindex.class);
              startActivity(itgameindex);
          }else{
              Toast lf = Toast.makeText(MainActivity.this,"賬號或密碼錯誤", Toast.LENGTH_LONG);
              lf.show();
          }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...