【发布时间】:2015-10-02 16:40:57
【问题描述】:
有一个我试图理解的Java语言的android应用程序(Android Studio)的sn-p代码,当我用粗体突出显示行代码时,有数字17作为数组的索引,我尝试了很多但是我不明白那个数字是什么,这是sn-p代码
protected void onPostExecute(String result)
{
**if(result == "0")**
{
Context context = getApplicationContext();
CharSequence text = "Invalid IP address";
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
else
{
char[] charArray = result.toCharArray();
Context context = getApplicationContext();
int duration = Toast.LENGTH_LONG;
**if(charArray[17]=='0')**
{
CharSequence text = "Invalid Password";
Toast toast = Toast.makeText(context, text, duration);
toast.show();
_logged_in = false;
}
**if(charArray[17]=='1')**
{
CharSequence text = "You logged in successfully";
Toast toast = Toast.makeText(context, text, duration);
toast.show();
_logged_in = true;
startActivity(intent);
}
}
提前致谢
【问题讨论】:
-
表示
charArray的第18个字符,所以result的第18个字符。 -
这做得相当糟糕 - 有两件事很突出。首先,它应该是 result.equals("0") 而不是 result === "0"。其次,确定成功的两个 if 语句是互斥的,因此第二个 [if(charArray[17]=='1')] 应该是 'else if' 而不是 'if'。
-
绝对应该修复提到的字符串问题。此外,结果的第 18 个字符似乎存储了登录是否成功以及 IP 地址是否有错误。我猜所有这些都在 AsyncTask 的末尾。不是我最喜欢的实现。结果应该只是一个常量整数或更好的枚举。
标签: java android arrays android-studio