如何检测我的字符串text
是否不等于“null”?我试过这个,但它不起作用。它总是执行剩下的代码并显示对话框 -
if (!text.equals("null")) {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("BROADCAST").setMessage(text).create();
alertDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
} else {
// don't show
}
PS:我不打算检查我的STRING是否为空。我在“STRING”中显示“NULL”,这是一个文本
答案 0 :(得分:3)
您可以使用:
if(text != null) {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("BROADCAST").setMessage(text).create();
alertDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
或者检查空字符串:
if(!text.equals("") {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("BROADCAST").setMessage(text).create();
alertDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
或两者:
if(text != null && !text.equals("") {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("BROADCAST").setMessage(text).create();
alertDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
}
修改:如果您正在尝试检查字符串是否等于单词" null"那你的原始代码看起来很好。我建议使用调试器或打印一些日志语句来检查发生了什么。
所以:
private static final String TAG = "SomeActivity";
if (!text.equals("null")) {
// Not equal to the word null
Log.d(TAG, "text value should NOT be null and is: " + text);
//AlertDialog alertDialog = new AlertDialog.Builder(this)
// .setTitle("BROADCAST").setMessage(text).create();
// alertDialog.getWindow().setType(
// WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
// alertDialog.show();
} else {
// don't show
Log.d(TAG, "text value should be null and is: " + text);
}
但实际上,这只是测试你没有犯错。除此之外,我建议不要使用" null" 来表示空字符串。它可能会混淆任何看着代码的人。坚持""这是更标准的。
答案 1 :(得分:1)
按原样,您的代码当前正在检查字符串是否等于字符串" null"。如果要查看String对象本身是否为空或不存在,请考虑:
if (text != null) {
AlertDialog alertDialog = new AlertDialog.Builder(this)
.setTitle("BROADCAST").setMessage(text).create();
alertDialog.getWindow().setType(
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
} else {
// don't show
}