声明默认值的 Android 共享首选项



所以我在onCreate函数中声明默认值"ipAddress"时遇到了一个小问题。 ipAddress 在底部空白中声明,但不用于检查 ip 是否存在。这是我正在使用的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
    if (sharedPreferences.contains("ip")) {
        performLogin(etUsername, etPassword, sharedPreferences.getString("ip", ipAddress));
    }
    // declaring variebles
    etUsername = (EditText)findViewById(R.id.etUsername);
    etPassword = (EditText) findViewById(R.id.etPassword);
    btnLogin = (Button) findViewById(R.id.btnLogin);
    etIpAddress = (EditText) findViewById(R.id.etIpAddress);
    // setting up things for login button
    btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String ipAddress = etIpAddress.getText().toString();
            SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
            sharedPreferences.edit()
                    .putString("ip", ipAddress)
                    .apply();
            String username = etUsername.getText().toString().trim();
            String password = etPassword.getText().toString().trim();
            performLogin(username, password, ipAddress);
        }
    });
}

代码中进行此更改

..
setContentView(R.layout.activity_login);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
String ip=sharedPreferences.getString("ip",null);
if(ip!=null){
  performLogin(etUsername, etPassword, ip);
}

最新更新