当我读取 mysql 的 BD 时,我尝试将用户输入的字符串(用户和 Pasw)与 BD 的日期进行比较。 但如果我把 == 从来没有说过我是平等的。
我有一个变量框:
package clases;
import bdMySQL.BDUsuarios;
public class Usuarios {
private String Usuario;
private String Password;
private String Rol;
public Usuarios( String i, String n, String rol ){
this.Usuario = i;
this.Password = n;
this.Rol = rol;
}
public String getUsuario() {
return Usuario;
}
public String getRol(String Usuario, String Password) {
if (Usuario == this.Usuario && Password == this.Password){
return this.Rol;
}else{
return "";
}
}
}
BD的咨询是正确的。
当我吃午饭时我的主程序:
public class PruebaMySQLActivity extends Activity {
public List<Usuarios> Usuarios;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button btnConectar = (Button)findViewById(R.id.btnConectar);
final TextView txtMensaje = (TextView)findViewById(R.id.txtMensaje);
btnConectar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0)
{
Usuarios = BDUsuarios.getDatosUsuarios();
String rol = "";
String Usuario = "miuser";
String Pasw = "mipasw";
int i = 1;
while (i < Usuarios.size() && rol == ""){
//Toast t=Toast.makeText(getBaseContext(),String.valueOf(i) + " " + familias.get(i).getUsuario() + " " + familias.get(i).getPassword() + " " + familias.get(i).getrol2() , Toast.LENGTH_LONG);
//t.show();
rol = Usuarios.get(i).getRol(Usuario, Pasw);
i= i + 1;
}
txtMensaje.setText(rol);
}
});
}
}
toast 完美地向我显示了所有数据,但是当我尝试执行“==”时找不到。 我尝试:
Usuario.equals(this.Usuario)
没有找到。
感谢您的帮助。
最佳答案
要比较两个字符串,您可以使用 equals() 或 equalsorIgnore() 方法。
if(s1.equals(s2))
{
}
而不是
if(s1==s2)
{
}
关于Android咨询Mysql以及与String的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248784/