检查验证并将编辑文本的值传递给移动活动



我有一个没有绑定到任何在线数据库的LoginActivity,我只通过编辑文本组件验证用户名来登录并移动到MainActivityLoginActivity出现时,MainActivity中的文本值为空,因此我创建了一个验证方法,当用户名为空,然后布局将移动到LoginActivity,我这样做的目的是LoginActivity不成为应用程序的主要布局。

验证MainActivity.java中的用户:

private void checkUsername() {
Intent intent = getIntent();
if(intent.getExtras() != null){
String users = intent.getStringExtra(LoginActivity.EXTRA_USER);
txuser.setText(users);
//NullPointerException: Attempt to invoke virtual method 'long android.database.sqlite.SQLiteDatabase.insert(java.lang.String)
ContentValues cv = new ContentValues();
cv.put(Contract.UserEntry.NAME_COLUMN,users);
database.insert(Contract.UserEntry.TABLE_NAME,null,cv);
} else {
startActivity(new Intent(this, LoginActivity.class));
}
}

LoginActivity.java

private void loginUser() {
final String username;
username = user.getText().toString();
if (TextUtils.isEmpty(username)) {
Toast.makeText(this, "Name cannot be blank!", Toast.LENGTH_SHORT).show();
}
if (!cbAgree.isChecked()) {
Toast.makeText(this, "Login fails!", Toast.LENGTH_SHORT).show();
}
fabLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(LoginActivity.this, UtamaActivity.class);
intent.putExtra(EXTRA_USER, username);
startActivity(intent);
}
});
}

如何解决这个问题?,因为当我第一次打开应用程序时,LoginActivity成功显示,但当我进入MainActivity时,它立即强制关闭。我在checkUsername()方法中包含了logcat注释

Intent intent = new Intent(LoginActivity.this, UtamaActivity.class);
改为Intent intent = new Intent(LoginActivity.this, MainActivity.class);

最新更新