如果其他条件不适用于按钮,请单击 Android
If else condition not working on button click in Android
如果我在点击调用另一个 Activity 时不使用任何条件,那么它可以工作,但是当我使用某些条件时,它没有响应,既不调用 if
部分也不调用 [=13] =]:
btnUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// uploading the file to server
try {
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
if (strGetEmail.equals("")&&strGetName.equals("")) {
Toast.makeText(UploadActivity.this, "Please create your account first", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UploadActivity.this, BasicActivity.class);
startActivity(intent);
}
else {
new UploadFileToServer().execute();
}
} catch (Exception e) {
// TODO: handle exception
}
}
});
您收到 NullPointerException,因为您的字符串很可能为空。检查您是否在 SharedPref 中写入值,然后 读取它。
此外,如果您还不想在本地存储中写入值,您应该将字符串的默认值设置为 pref.getString("key_name","")
或确保 strGetEmail!=null
在检查 equals()
.
之前
if..else
部分不起作用,因为 if
语句中有一个 NullpointerException
。您可能在 null
值上调用 .equals
。
改变这个
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
进入这个
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
或像这样更改您的 if
代码,
if (strGetEmail == null || strGetName== null) {
....
}
if条件中&&和strGetName.equals("")之间应该有space。
if (strGetEmail.equals("") && strGetName.equals(""))
并改变
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
至
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
你只需替换这段代码
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
用这段代码
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
您总是得到您作为默认值给出的空值。
按照这个改:
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
如果我在点击调用另一个 Activity 时不使用任何条件,那么它可以工作,但是当我使用某些条件时,它没有响应,既不调用 if
部分也不调用 [=13] =]:
btnUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// uploading the file to server
try {
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
if (strGetEmail.equals("")&&strGetName.equals("")) {
Toast.makeText(UploadActivity.this, "Please create your account first", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(UploadActivity.this, BasicActivity.class);
startActivity(intent);
}
else {
new UploadFileToServer().execute();
}
} catch (Exception e) {
// TODO: handle exception
}
}
});
您收到 NullPointerException,因为您的字符串很可能为空。检查您是否在 SharedPref 中写入值,然后 读取它。
此外,如果您还不想在本地存储中写入值,您应该将字符串的默认值设置为 pref.getString("key_name","")
或确保 strGetEmail!=null
在检查 equals()
.
if..else
部分不起作用,因为 if
语句中有一个 NullpointerException
。您可能在 null
值上调用 .equals
。
改变这个
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
进入这个
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
或像这样更改您的 if
代码,
if (strGetEmail == null || strGetName== null) {
....
}
if条件中&&和strGetName.equals("")之间应该有space。
if (strGetEmail.equals("") && strGetName.equals(""))
并改变
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
至
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
你只需替换这段代码
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
用这段代码
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
您总是得到您作为默认值给出的空值。 按照这个改:
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");