Как я могу сохранить только один идентификатор телефона и пароль с помощью SharedPreference в кнопке - PullRequest
0 голосов
/ 04 октября 2018

Я новичок и только изучаю, как создать ресторанное приложение, которое позволяет пользователю входить через «член-вход» и «не-вход».На главном экране есть 3 кнопки: меню, вход, регистрация.Новому участнику разрешается регистрироваться (регистрироваться) и входить в систему (входить в систему) каждый раз, в то время как не член может напрямую просматривать меню ресторана через (кнопку меню), пропустив процесс входа / регистрации.

Мне нужно захватить каждый из ордеров транзакций участников / не членов в базу данных firebase.Так что я могу установить только 1 phoneId и пароль в SharedPreference для кнопки меню, чтобы позволить автоматическому входу в систему «не членов», когда они нажимают на (кнопку меню).Если это возможно, я могу знать, как реализовать?Спасибо

MainActivity.java

public class MainActivity extends AppCompatActivity {

Button btnSignIn, btnSignUp, btnMenu;

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

    btnMenu = (Button)findViewById(R.id.btnMenu);
    btnSignUp = (Button)findViewById(R.id.btnSignUp);
    btnSignIn = (Button)findViewById(R.id.btnSignIn);

    btnMenu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });

    btnMenu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent home = new Intent(MainActivity.this, Home.class);
            //Common.currentUser = user;
            startActivity(home);


        }
    });

    btnSignUp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent signUp = new Intent(MainActivity.this, SignUp.class);
            startActivity(signUp);
        }
    });

    btnSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent signIn = new Intent(MainActivity.this, SignIn.class);
            startActivity(signIn);
        }
    });
}

1 Ответ

0 голосов
/ 04 октября 2018

Поскольку вы новичок, запомните следующие пункты о хранении данных в Android:

1) Когда использовать общие настройки ->

Если у вас естьтолько одно значение для вашей сущности.

Например, теперь в вашем случае у вас будет только один пользователь для каждого приложения.Следовательно, вы можете хранить свое имя пользователя, пароль и другую информацию в общих настройках.

2) Когда использовать базу данных SQLite ->

Если у вас есть большечем одно значение для вашей сущности.

Например, в вашем случае вы можете использовать SQLite для хранения пользовательских заказов.

Решение вашей проблемы:

1) Создать Constant.java , в котором будут храниться ваш телефонный идентификатор и пароль по умолчанию.

public static final String DEFAULT_PHONE_ID = "your_default_id";
public static final String DEFAULT_PASSWORD = "your_default_password";

2) Создать AppPreferences.java , который сохранити получите ваши предпочтения.

    public class AppPreferences {
            // Class variables
                private Context context;
                private static SharedPreferences sharedPreferences;
                private static SharedPreferences.Editor editor;
                private int PRIVATE_MODE = 0;

     // Define your preferences key
     private static final String USER_PHONE = "user_id";
     private static final String USER_PASSWORD = "user_password";

        private AppPreferences(Context context) {
                this.context = context;
                sharedPreferences = this.context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
                if (sharedPreferences != null)
                {
                    editor = sharedPreferences.edit();
                }
            }   

//Store userPhoneId
         private void setUserPhoneId(String userId){
         String TAG = "AppPreferences : setUserId";
        try
        {
            editor.putString(USER_PHONE, userId);
            editor.commit();
        } catch (Exception e) {
            Log.e(TAG, e);
        }
}

// Get userPhoneId
public String getUserPhoneId(){
  return sharedPreferences.getString(USER_PHONE,"default_phone");
}

//Store userPassword
         private void setUserPasswword(String userPassword){
         String TAG = "AppPreferences : setUserPassword";
        try
        {
            editor.putString(USER_PASSWORD, userPassword);
            editor.commit();
        } catch (Exception e) {
            Log.e(TAG, e);
        }
}

// Get userPassword
public String getUserPassword(){
  return sharedPreferences.getString(USER_PASSWORD,"default_phone");
}

}

В вашей деятельности:

private AppPreference appPreference;

onCreate(){

appPreference = new AppPreference(this);

}

 btnMenu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent home = new Intent(MainActivity.this, Home.class);
            //Here save user info to preferences
            appPreference.setUserPhoneId(Constants.DEFAULT_PHONE_ID);
            appPreference.setUserPassword(Constants.DEFAULT_PASSWORD);
            startActivity(home);


        }
    });

    btnSignUp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent signUp = new Intent(MainActivity.this, SignUp.class);
            startActivity(signUp);
        }
    });

    btnSignIn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent signIn = new Intent(MainActivity.this, SignIn.class);
            startActivity(signIn);
        }
    });

Надеюсь, это поможет вам.

...