android 中intent跳转是灰色的,没有效果,显示intent = null

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都会无效。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值