为了账号安全,请及时绑定邮箱和手机立即绑定

如何调试 Android 代码以获得意外值?

如何调试 Android 代码以获得意外值?

扬帆大鱼 2021-09-29 16:40:12
我是 Android 新手,在 Android Studio 上做了一些基本活动。我有以下代码,它会在成功登录后从 LoginActivity 重定向到 Navigation 活动。如果凭据正确,则loginPassed变量设置为 true,否则为 false。如果我在上面的程序中删除if条件 if 将正确重定向到 NavigationActivity 但如果条件到位,它将简单地关闭应用程序。不知道我哪里错了。
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您声明了loginPassedvar,但永远不要在其中放置值。当您创建一个booleanvar 时,默认值是false,它们运行时永远不会输入if(loginPassed)


查看完整回答
反对 回复 2021-09-29
?
慕仙森

TA贡献1827条经验 获得超8个赞

首先你必须定义一个全局变量 loginPassed


Boolean loginPassed;

然后你必须执行 AsyncTask 来检查这样的用户凭据 -


new UserLoginTask().execute();

现在在 AsyncTask 中,我们将检查用户的凭据并进行相应的操作


class UserLoginTask extends AsyncTask<Void, Integer, String>

{

   String TAG = getClass().getSimpleName();


   protected void onPreExecute (){

      super.onPreExecute();

      Log.d(TAG + " PreExceute","On pre Exceute......");

    }


   protected String doInBackground(Void...arg0) {

    Log.d(TAG + " DoINBackGround","On doInBackground...");


    if(validate(email, password))

        loginPassed = true;

    else

        loginPassed = false;


    return "";

   }


  protected void onProgressUpdate(Integer...a){

    super.onProgressUpdate(a);

    Log.d(TAG + " onProgressUpdate", "You are in progress update ... " + a[0]);

  }


  protected void onPostExecute(String result) {

    super.onPostExecute(result);

    Log.d(TAG + " onPostExecute", "" + result);


    if(loginPassed){


        Intent intent = new Intent(this, NavigationActivity.class);

        intent.putExtra(EXTRA_MESSAGE, "Jefry");

        startActivity(intent);


     }else{

        // There was an error; don't attempt login and focus the first

        // form field with an error.

        focusView.requestFocus();

     }


  }

}


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信