嗨我在登录时有点问题我实际上是试图通过检查数据库中的用户名来编辑登录并编辑文本值但它不起作用。以下是我的代码。 我有点想要获得EditTextvalue
package com.example.employeemanager;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Login extends Activity {
SQLiteDatabase db;
EditText unameedt;
String unam;
String pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Button logbtn = (Button) findViewById(R.id.loginbtn);
Button signup = (Button) findViewById(R.id.signup);
EditText unameedt = (EditText) findViewById(R.id.editText1);
EditText passedt = (EditText) findViewById(R.id.editText2);
db = openOrCreateDatabase("Employeemanager", MODE_PRIVATE, null);
unam = unameedt.getText().toString();
pass = passedt.getText().toString();
logbtn.setOnClickListener(new OnClickListener()
{
public void onClick(View v) {
Cursor c = db.rawQuery(
"SELECT username, password from Employee", null);
if (c != null) {
if (c.moveToFirst()) {
do {
String uname = c.getString(c
.getColumnIndex("username"));
String upass = c.getString(c
.getColumnIndex("password"));
if (uname.equals(unam)) {
StartActivity(new Intent(Login.this, Home.class));
}
} while (c.moveToNext());
}
}
}
});
signup.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
startActivity(new Intent(Login.this, Emp_signup.class));
}
});
}
}
答案 0 :(得分:5)
点亮你的
unam = unameedt.getText().toString();
pass=passedt.getText().toString();
进入butonClick事件
logbtn.setOnClickListener(new OnClickListener()
{
unam = unameedt.getText().toString();
pass=passedt.getText().toString();
});
答案 1 :(得分:0)
它很简单,但在开始学习Android时看起来很重要。你现在做的是你在onCreate中获得了价值
unam = unameedt.getText().toString();
pass = passedt.getText().toString();
因此,现在uname
和pass
为empty
,因为在onCreate时没有设置为相应EditText
的值。
在OnClick
方法中,您比较Edittext和数据库中的值
if (uname.equals(unam)) {//if(usernamefromDatabase.equals(emptyValue))
StartActivity(new Intent(Login.this, Home.class));
}
问题出在哪里。
您现在要做的是获取onClick中的unam
和pass
值
unam = unameedt.getText().toString();
pass = passedt.getText().toString();
if (uname.equals(unam)) {//if(usernamefromDatabase.equals(valueyouentered))
StartActivity(new Intent(Login.this, Home.class));
}
现在应该可以了。