1.没有设置startActivity(intent)
startActivity(intent);
这一行代码应该放在整个功能结束前的一行,如下:
//登录验证代码
@Override
public void onClick(View v) {
Intent intent = null;
switch (v.getId()){
case R.id.btn_login:
String mpass = "";
// 通过AlertDialog.Builder这个类来实例化我们的一个AlertDialog的对象
AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
// 设置Title的图标
builder.setIcon(R.drawable.zstu);
// 设置Title的内容
UserDBHelper databaseHelper = new UserDBHelper(LoginActivity.this,"test.db",null,1);
SQLiteDatabase db = databaseHelper.getReadableDatabase(); // 这里先用.getreadableDatebase查一下
Cursor cursor = db.query("user_info",null,"_id=?",new String[]{id.getText().toString().trim()},null,null,null);
String mname = id.getText().toString().trim();
if(cursor.moveToNext()){
@SuppressLint("Range")
String s1 = cursor.getString(cursor.getColumnIndex("user_password"));
mpass = s1;
}
String user_id = id.getText().toString().trim();
String user_pwd = pass.getText().toString().trim();
//Cursor cursor = db.rawQuery("select id from user_info where id=?", new String[]{"2018329621209"});
if (user_id.equals(mname) && user_pwd.equals(mpass) && user_id.equals("")==false ) {
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
builder.setTitle("登录成功");
builder.show(); // 显示出该对话框
//若账号密码输入正确则保存账号并返回主界面
//保存全局变量账号
application app_id = (application)getApplication();
app_id.setID(user_id);
//返回主界面
intent = new Intent(LoginActivity.this, MainActivity.class);
} else {
Toast.makeText(LoginActivity.this, "您的输入有误,请重试", Toast.LENGTH_SHORT).show();
builder.setTitle("您的输入有误,请重试");
builder.show(); // 显示出该对话框
}
break;
case R.id.btn_register:
intent = new Intent(LoginActivity.this, RegisterActivity.class);
break;
}
//启动Activity的跳转代码尽量放在onclick函数结尾}的上一行
//我在这出现一个问题,第一个intent处是白色的说明可以跳转,但是第二个是灰色的显示intent=null
//后来才想明白我一开始没放注册页面,修改的时候是直接改成switch的,但之前只有一个按键没有注册,startActivity是紧跟着登录功能的
//在我设置了注册后应该把startActivity的代码下移至整个功能的最后一行。
startActivity(intent);
}
2.有的intent是白色的,有的是灰色的
startActivity(intent);
代码应放在整体功能最后一行。同上
如果提前放在某一个跳转intent中,后面的intent都会无效。