将EditText中的文本与数据库中的字符串进行比较

Rog*_*ger 0 java android

此代码应将输入到R.id.editUserName中的文本与R.string.DB_username进行比较,如果匹配,则将您登录,否则显示他们不匹配的Toast.

public void signIn(View view) {

  EditText editUserName = (EditText)findViewById(R.id.editUserName);
  String userName = editUserName.getText().toString();

  if ( userName ==  getResources().getString(R.string.DB_username)) {
    // log in
    setContentView(R.layout.screen1);
  } else {
    // show toast
    Toast toast = Toast.makeText(getApplicationContext(), userName+" != "+getResources().getString(R.string.DB_username), Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER, 0, 0);
    toast.show();
  }
}
Run Code Online (Sandbox Code Playgroud)

即使他们确实匹配,它仍然会举杯祝酒,比如"Roger!= Roger"......怎么会这样?

Jox*_*aex 5

不要那样比较它们.使用java提供的字符串比较函数来比较它们.

请参阅此处:http: //www.devdaily.com/java/edu/qanda/pjqa00001.shtml


Ric*_*dle 5

您无法比较Java中的字符串.你需要:

if (userName.equals(...))
Run Code Online (Sandbox Code Playgroud)

你的代码所说的是"这两件事在记忆中是完全相同的对象吗?" 而不是"每个对象的内容是否相同?"