为什么输入正确的用户名之后还是显示用户名错误???

Andumen 2017-04-18 11:44:36
Android studio的一个登陆页面,输入用户名设置为admin,密码为123456
输入正确的用户名和密码提示用户名错误(toast),下面是我的代码,实在看不出来哪出问题了??跪求各位大神
登陆的Java代码:
package com.lapp.android.qaa;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity {
private Button mLoginButton;
private Button mRegistButton;
private EditText mUserEditText;
private EditText mPasswordEditText;
private String user="admin";
private String password="123456";
private String userText;
private String passwordText;

private void show(int id){
Toast.makeText(this, id, Toast.LENGTH_SHORT).show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

mUserEditText = (EditText)findViewById(R.id.text_User);
mPasswordEditText = (EditText)findViewById(R.id.text_Password);
userText = mUserEditText.getText().toString();
passwordText = mPasswordEditText.getText().toString();
mLoginButton = (Button)findViewById(R.id.login_button);
mLoginButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
System.out.println(userText);
System.out.println(passwordText);
int messageResId = 0;
if(userText == user){
if(passwordText == password){
Intent intent = new Intent();
intent.setClass(LoginActivity.this, QAAActivity.class);
startActivity(intent);
}
else{
messageResId = R.string.password_err;
show(messageResId);
}
}
else{
messageResId = R.string.user_err;
show(messageResId);
}
}
});
}
}
...全文
549 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jason Zhang~ 2017-04-19
  • 打赏
  • 举报
回复
引用 8 楼 Andumen 的回复:
[quote=引用 5 楼 YXTS122 的回复:]    private void show(int id){        Toast.makeText(this, id, Toast.LENGTH_SHORT).show();    }    Toast.makeText的第二个参数不是string吗?怎么是int?
因为使用的是资源id,在string.xml文件中存放的字符串,可以用这样的方法进行表示[/quote] 对 ,这个算是java的重载知识了。同样方法名,参数也是三个,但是第二个参数传string或者资源int型id都可以。
Andumen 2017-04-18
  • 打赏
  • 举报
回复
引用 5 楼 YXTS122 的回复:
   private void show(int id){        Toast.makeText(this, id, Toast.LENGTH_SHORT).show();    }    Toast.makeText的第二个参数不是string吗?怎么是int?
因为使用的是资源id,在string.xml文件中存放的字符串,可以用这样的方法进行表示
Andumen 2017-04-18
  • 打赏
  • 举报
回复
引用 3 楼 xiaoyu_93 的回复:
判断字符串是否相等用equals。
谢谢谢谢,之前用的equals不行,原因是获得的edittext没有放在onclick方法里面,放进去之后发现还是得用equals才能比较,感谢ing
Andumen 2017-04-18
  • 打赏
  • 举报
回复
引用 1 楼 qq_29897079 的回复:
你在onClick里面去拿你输入的值,也就是把
userText = mUserEditText.getText().toString();
        passwordText = mPasswordEditText.getText().toString();
放在onclick里面
谢谢你啊,改了之后我成功了,但是字符串比较还得使用equals方法,挺感谢的
YXTS122 2017-04-18
  • 打赏
  • 举报
回复
   private void show(int id){        Toast.makeText(this, id, Toast.LENGTH_SHORT).show();    }    Toast.makeText的第二个参数不是string吗?怎么是int?
Jason Zhang~ 2017-04-18
  • 打赏
  • 举报
回复
if(userText.equals(user)){ 这样
Jason Zhang~ 2017-04-18
  • 打赏
  • 举报
回复
判断字符串是否相等用equals。
展翼翔宇 2017-04-18
  • 打赏
  • 举报
回复
因为onCreate是在初始化页面的时候加载的,这个时候的值是null,不管你怎么点击登录mUserEditText一直是null,所以你把获取值放到点击事件里面就可以拿到你输入的值了
展翼翔宇 2017-04-18
  • 打赏
  • 举报
回复
你在onClick里面去拿你输入的值,也就是把
userText = mUserEditText.getText().toString();
        passwordText = mPasswordEditText.getText().toString();
放在onclick里面

80,470

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧