如果其他条件不适用于按钮,请在Android中单击
如果我在单击调用另一个活动时未使用任何条件,则它会工作,但当我使用某些条件时,则它不会响应,既不会调用如果其他条件不适用于按钮,请在Android中单击,android,if-statement,button,android-activity,Android,If Statement,Button,Android Activity,如果我在单击调用另一个活动时未使用任何条件,则它会工作,但当我使用某些条件时,则它不会响应,既不会调用If部分,也不会调用else: btnUpload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // uploading the file to server
If
部分,也不会调用else
:
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,因为您的字符串很可能为null。在读取之前,检查您是否正在SharedRef中写入值
此外,如果您还不想在本地存储中写入值,则应将字符串的默认值设置为
pref.getString(“key_name”,”)
,或者确保strGetEmail=在检查equals()
之前,null
,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 (strGetEmail == null || strGetName== null) {
....
}
if条件中&&和strgename.equals(“”)之间应该有空格
if (strGetEmail.equals("") && strGetName.equals(""))
改变
strGetName = pref.getString("key_name", null);
strGetEmail = pref.getString("key_email", null);
到
您只需替换这段代码
strGetName=pref.getString(“key\u name”,null);
strGetEmail=pref.getString(“key_email”,null)代码>
用这段代码
strgename=pref.getString(“key_name”,”);
strGetEmail=pref.getString(“key_email”,”)代码>您总是得到作为默认值提供的空值。
根据以下内容进行更改:
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");
它没有响应,既不调用if节也不调用else
意味着执行了catch
块,使用e.printStackTrace()
检查异常您给出的默认值为null,但用“”检查它。这是一个错误的检查在catch块中检查它,将出现nullponterexception
strGetName = pref.getString("key_name", "");
strGetEmail = pref.getString("key_email", "");