好吧,让我们从头开始:我比较两个相等的值,但结果说,他们是不同的
在我Mainactivity我有一个连接到MySQL中的数据库,并且发送一个查询并返回另一个空一空用户和密码
我将数据库的名称和密码存储到两个变量中,然后将它们与我在用户的EditText和密码中编写的内容进行比较,问题是如果什么是在EdittText中等于我从数据库中提取的内容,它总是告诉我它们不一样。
这里是代码:
package com.example.merli.loginconmysql;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.Connection;
public class MainActivity extends Activity {
EditText usuario;
EditText contra;
Button entrar;
String usuarioAchequear;
String contraAChequear;
String bd_usuario = "android";
String bd_contra = "123456";
String bd_url = "jdbc:mysql://192.168.1.13:3306/test" + "?user=" + bd_usuario + "&password=" + bd_contra + "&useUnicode=true&characterEncoding=UTF-8";
Connection conec;
Statement estado;
ResultSet query;
Context contexto = this;
int prueba;
@Override
protected void onCreate(Bundle savedInstanceState) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usuario = (EditText) findViewById(R.id.usuario);
contra = (EditText) findViewById(R.id.contrasena);
entrar = (Button) findViewById(R.id.entrar);
conxecionBaseDatos();
entrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
entrarxD();
prueba = usuario.getText().toString().length();
if (usuario.getText().toString() == usuarioAchequear)
{
AlertDialog.Builder dialogo = new AlertDialog.Builder(contexto);
dialogo.setMessage("Bienvenido! " + usuarioAchequear);
dialogo.setPositiveButton("Okey", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialogo.create();
dialogo.show();
}else
{
AlertDialog.Builder dialogo = new AlertDialog.Builder(contexto);
dialogo.setMessage("Usuario o contraseña incorrecta " + prueba);
dialogo.setPositiveButton("Okey", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialogo.create();
dialogo.show();
}
}
});
}
public void conxecionBaseDatos()
{
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
conec = DriverManager.getConnection(bd_url);
estado = conec.createStatement();
}catch (Exception e)
{
AlertDialog.Builder dialogo = new AlertDialog.Builder(contexto);
dialogo.setMessage(e.getMessage());
dialogo.setPositiveButton("Okey", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialogo.create();
dialogo.show();
}
}
public void entrarxD()
{
try {
query = estado.executeQuery("SELECT * FROM tabla WHERE usuario = '" + usuario.getText().toString() + "'");
query.first();
while (query.next())
{
usuarioAchequear = query.getString("usuario");
contraAChequear = query.getString("contra");
}
AlertDialog.Builder dialogo = new AlertDialog.Builder(contexto);
dialogo.setMessage("Usuario:" + usuarioAchequear + " Contraseña:" + contraAChequear);
dialogo.setPositiveButton("Okey", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialogo.create();
dialogo.show();
}catch (Exception e)
{
AlertDialog.Builder dialogo = new AlertDialog.Builder(contexto);
dialogo.setMessage(e.getMessage());
dialogo.setPositiveButton("Okey", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialogo.create();
dialogo.show();
}
}
}
请阅读:如何创建一个** **最小的,完整的和可验证的示例](https://开头stackoverflow.com/help/mcve) – Andreas