在android studio中,我想将编辑文本字段中输入的值与DB进行比较
我有一个注册页面,通过编辑文本字段获取用户名和密码,并将它们存储在一个没有ID的数据库中,现在我需要将数据库中存储的这些用户名和密码与另一个名为“登录”的活动中编辑文本的用户名和密码进行比较,并检查它们是否匹配。 这是我的Signup.java代码:在android studio中,我想将编辑文本字段中输入的值与DB进行比较,android,database,android-studio,android-edittext,android-applicationinfo,Android,Database,Android Studio,Android Edittext,Android Applicationinfo,我有一个注册页面,通过编辑文本字段获取用户名和密码,并将它们存储在一个没有ID的数据库中,现在我需要将数据库中存储的这些用户名和密码与另一个名为“登录”的活动中编辑文本的用户名和密码进行比较,并检查它们是否匹配。 这是我的Signup.java代码: package com.example.admin.studentdb; import android.app.AlertDialog; import android.content.Context; impor
package com.example.admin.studentdb;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Signup extends AppCompatActivity implements OnClickListener{
EditText username,password,cpassword;
Button signup;
SQLiteDatabase sdb;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.signup);
username = ((EditText) findViewById(R.id.username));
password = ((EditText) findViewById(R.id.password));
cpassword = ((EditText) findViewById(R.id.cpassword));
signup = ((Button) findViewById(R.id.btnsing));
signup.setOnClickListener(this);
sdb = openOrCreateDatabase("SignUP", Context.MODE_PRIVATE, null);
sdb.execSQL("CREATE TABLE IF NOT EXISTS sign ( username VARCHAR ,password VARCHAR);");
}
public void onClick(View view) {
String chkpass = password.getText().toString();
String cmpass = cpassword.getText().toString();
if (view == signup) {
if (username.getText().toString().trim().length() == 0) {
showMessage("Error", "Please enter the username");
return;
} else if (password.getText().toString().trim().length() == 0) {
showMessage("Error", "Please enter the password");
return;
} else if (cpassword.getText().toString().trim().length() == 0) {
showMessage("Error", "Confirm password");
return;
} else if (!chkpass.equals(cmpass)) {
showMessage("Error", "passwords dont match");
return;
} else if (getCount()==0){
sdb.execSQL("INSERT INTO sign VALUES('" + username.getText() + "','" + password.getText() + "');");
Toast a = Toast.makeText(getApplicationContext(),"Registered Sucessfully",Toast.LENGTH_LONG);
a.show();
Intent abc = new Intent(Signup.this,Login.class);
startActivity(abc);
clearText();
}
else{
showMessage("Error", "Username already Exists");
}
}
}
public int getCount() {
Cursor c = null;
try {
c = sdb.rawQuery("SELECT COUNT(*) FROM sign WHERE username='" + username.getText() + "'", null);
if (c.moveToFirst()) {
return c.getInt(0);
}
return 0;
}
finally {
}
}
public void showMessage(String title,String message)
{
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.show();
}
public void clearText()
{
username.setText("");
password.setText("");
cpassword.setText("");
username.requestFocus();
}
}
难道你没有忘记在
username.getText()
之后添加.toString()
,因为它返回可编辑的
非字符串
c=sdb.rawQuery(“从符号中选择COUNT(*),其中username='”+username.getText()+”,null)代码>请尝试以下操作:
Cursor cursor = db.rawQuery("SELECT * FROM studentdatabase WHERE id='" + e1.getText() + "'", null);
if (cursor.getCount() == 0) {
Toast.makeText(this, "No id found:", Toast.LENGTH_SHORT).show();
return;
}
不清楚您是否面临任何问题或不知道如何解决?