- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 SQL 编写用于登录和注册的 android 代码,当我运行该应用程序并尝试使用我注册时使用的相同用户名登录时,它不会转到主页,但会执行 else 语句在显示“错误输入”的登录类中。请问有谁知道原因吗?
这是我的代码:
public class Login extends AppCompatActivity {
EditText edt_username, edt_pass,edt_email;
TextView tv_username, tv_pass;
Button btn_login, btn_signUp;
Login_SQLHelper login_sqlHelper;
SQLiteDatabase db;
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
login_sqlHelper = new Login_SQLHelper(this);
edt_username = (EditText) findViewById(R.id.edt_username);
edt_pass = (EditText) findViewById(R.id.edt_pass);
tv_username = (TextView) findViewById(R.id.tv_username);
tv_pass = (TextView) findViewById(R.id.tv_pass);
btn_login = (Button) findViewById(R.id.button);
btn_signUp = (Button) findViewById(R.id.button2);
btn_signUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent goSignup = new Intent(Login.this, SignUp.class);
startActivity(goSignup);
}
});
login();
//viewData();
}
public void login() {
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user = new User();
String name = edt_username.getText().toString();
String pass = edt_pass.getText().toString();
user.setUser_name(name);
user.setPassword(pass);
if ( name.equals(login_sqlHelper.get_data().getUser_name())){
Intent goHome = new Intent(Login.this, Home.class);
startActivity(goHome);
} else
Toast.makeText(Login.this, "Wrong input", Toast.LENGTH_SHORT).show();
edt_username.setText("");
edt_pass.setText("");
public class Login_SQLHelper extends SQLiteOpenHelper {
public static final String database_name = "user_log";
public static final String table_name = "user_table";
public static final String col_username = "username";
public static final String col_userEmail = "user_email";
public static final String col_userPass = "user_pass";
User user = new User();
public Login_SQLHelper(Context context) {
super(context, database_name, null, 1);
SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(" create table " + table_name + "(" + col_username + " TEXT," + col_userEmail + " TEXT," + col_userPass + " TEXT )");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + table_name);
}
public boolean insert_data(User user) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(col_username, user.getUser_name());
contentValues.put(col_userEmail, user.getEmail());
contentValues.put(col_userPass, user.getPassword());
Long res = db.insert(table_name, null, contentValues);
if (res == -1)
return false;
else
return true;
}
public User get_data() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from " + table_name, null);
User user2 = new User();
return user2;
}
public class SignUp extends AppCompatActivity {
EditText edt_username, edt_pass, edt_email;
Button btn3;
User user;
Login_SQLHelper login_db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
edt_username = (EditText) findViewById(R.id.edtS_username);
edt_pass = (EditText) findViewById(R.id.edtS_pass);
edt_email = (EditText) findViewById(R.id.edtS_email);
btn3 = (Button) findViewById(R.id.button3);
user = new User();
login_db = new Login_SQLHelper(this);
signUp();
}
public void signUp() {
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user.setUser_name(edt_username.getText().toString());
user.setEmail(edt_email.getText().toString());
user.setPassword(edt_pass.getText().toString());
boolean isInserted = login_db.insert_data(user);
if (isInserted == true) {
Toast.makeText(SignUp.this, "Inserted", Toast.LENGTH_SHORT).show();
Intent goLogin = new Intent(SignUp.this, Login.class);
startActivity(goLogin);
}else
Toast.makeText(SignUp.this, "Not inserted", Toast.LENGTH_SHORT).show();
}
});
}
}
public class User {
String user_name , email , password;
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
最佳答案
问题出在这个方法上。
public User get_data() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from " + table_name, null);
User user2 = new User();
return user2;
}
您正在从数据库中获取数据并创建新的用户对象并返回此空对象。
尝试此代码或根据需要做出一些改变。
public User get_data() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from " + table_name, null);
if ((mCursor.moveToFirst()) || mCursor.getCount() !=0){
User user2 = new User();
user2.setUser_name(cursor.getString(0));
user2.setEmail(cursor.getString(1));
user2.setPassword(cursor.getString(2));
cursor.close();
}
return user2;
}
关于android - 当我输入相同的用户名时它给了我 "Wrong input"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54863683/
这个问题在这里已经有了答案: java.lang.IllegalArgumentException: The servlets named [X] and [Y] are both mapped t
我无法让我的 WebRTC 代码正常工作。我相信我所做的一切都是正确的,但它仍然无法正常工作。为什么 ontrack 这么早就被调用有些奇怪,也许它应该是那样的。 该网站使用 javascript 代
使用 Mac OSX 优胜美地 (10.10.4): rails -v => Rails 4.2.3 ruby -v => ruby 2.2.2p95 遵循这些说明的组合: https://www
您好,我正在尝试使用(缓存的)已编译的 lambda 表达式来访问属性,与使用 PropertyInfo.GetValue()/SetValue() 方法调用相比,我确实得到了更好(即更快)的结果。然
我编写此代码是为了获取学生的字母成绩并计算他们的 GPA。当我运行该程序时,我可以正确获取学生的姓名和科目,但无法显示成绩或 GPA。 示例输入: Sally 1 A N 示例输出: Enter St
我一直在编写这段代码,根据这本书应该可以做到这一点: Write a script that creates and calls a stored procedure named test. This
我真的很难创建一个具有以下基本格式的有效多维 JavaScript 数组: var countries = [ { "country": "UK", "properties": {
我有一个小型 Python OOP 程序,其中 2 个类 Flan 和 Outil 继承自父类(super class) Part。 我的问题是,当我调用 Flan 时一切正常,但是当我调用 Outi
我目前正在尝试使用通用监听器来编写事件系统。 所有监听器都应添加到单个 EventSource 对象,该对象将为特定事件调用其 receiveEvent() 方法。 事件源: public class
我正在通过我的 PHP 应用程序发送电子邮件。但是,它们被 Gmail 标记为垃圾邮件。这是我发送电子邮件的方式(PHP): $headers = "From: test@bookmytakeout.
我已经正式走到了穷途末路的地步。我找不到我做错了什么。我完成的这个程序几乎与我几天前编写的另一个程序一模一样,但我在编译时遇到了问题。我不知道为什么输出线上出现错误。请帮忙: 这是正在运行的文件: p
---编辑:我不允许使用任何包或预置方法。不用担心,我不想让你做我的“作业”,我只需要一点提示!---我发现these interesting Algorithms 。我想使用按位添加方法。我的问题是
我制作了一个小程序,尝试使用 conn.getOutputStream(); 检索 URLConnection 对象输出流。当我尝试执行此操作时,我的小程序抛出异常 java.net.UnknownS
每当我尝试在 SVN 中合并时,我都会遇到成堆的树冲突。好吧,就此示例脚本而言,只有一个,但仍然如此。 #!/bin/bash svnadmin create repo svn checkout fi
我开始为 Scala 中的 X500PrincipalBuilder 类编写单元测试。这是我的测试代码: import org.junit.runner.RunWith import org.scal
我正在用 python 编写我的第一个程序,它必须模拟粒子(两种气体)的混合。我不知道我这个功能做错了什么。我不希望颗粒离开某些区域,即容器的壁。我使用 VPython。 def poruszanie
我正在尝试求解三角方程组,但我认为 Python 没有生成正确的解。我试图解决的方程: 1 − 2cosθ1 + 2cosθ2 − 2cosθ3 = −0.8 1 − 2cos5θ1 + 2cos5θ
这个问题已经有答案了: TypeError: worker() takes 0 positional arguments but 1 was given [duplicate] (11 个回答) 已关
大家好,我正在努力解决这个问题 编写一个 C 程序,计算弹丸在撞击地面之前行进的距离(即射程)、弹丸撞击地面所需的时间以及弹丸飞行中的最大高度(给定角度)它被射向空中,以及发射时的初始速度(速度)。我
我编写了代码来计算 QuickSort 中完成的比较次数。 每当对长度为 m 的数组执行快速排序时,该算法都会将比较次数增加 m-1(因为主元将与除自身以外的所有内容进行比较)。 枢轴的选择始终是数组
我是一名优秀的程序员,十分优秀!