Java 如果(text.equals)崩溃
我的视图上有一个textfield,当textfield上的文本发生变化时,我有一个if语句,因此当某个关键字在textview中时,一些代码将运行。下面是我的if语句代码:Java 如果(text.equals)崩溃,java,android,logging,crash,Java,Android,Logging,Crash,我的视图上有一个textfield,当textfield上的文本发生变化时,我有一个if语句,因此当某个关键字在textview中时,一些代码将运行。下面是我的if语句代码: if (text1.equals("rotate")) { red.setRotation(red.getRotation() + 5); blue.setRotation(blue.getRotation() + 5);
if (text1.equals("rotate")) {
red.setRotation(red.getRotation() + 5);
blue.setRotation(blue.getRotation() + 5);
}
但当text1等于“rotate”并运行此代码时,应用程序将崩溃
这是日志目录:
原因是
text1
为null,并且您正试图调用null引用上的方法
您可能忘记初始化它,或者尚未分配值
如果您已经进行了初始化,并且有可能获得空值,那么您需要为此设置一个保护条件
if (text1 !=null && text1.equals("rotate")) {
这首先检查null,然后调用该方法。原因是
text1
为null,并且您正在尝试调用null引用上的方法
您可能忘记初始化它,或者尚未分配值
如果您已经进行了初始化,并且有可能获得空值,那么您需要为此设置一个保护条件
if (text1 !=null && text1.equals("rotate")) {
这将首先检查null,然后调用该方法。似乎text1未初始化。在方法中,初始化
text1
。下面是一个如何:
text1 = (EditText)findViewById(R.id.text1);
如果它已初始化并且可以为null,则保护它
if ("rotate".equals(text1)) {
似乎text1没有初始化。在您的方法中,初始化
text1
。下面是一个如何:
text1 = (EditText)findViewById(R.id.text1);
如果它已初始化并且可以为null,则保护它
if ("rotate".equals(text1)) {
首先:初始化
text1
如果是文本视图
,则
text1 = (TextView) findViewById(R.id.textview_id);
text1 = (EditText) findViewById(R.id.editText_id);
如果是EditText
,则
text1 = (TextView) findViewById(R.id.textview_id);
text1 = (EditText) findViewById(R.id.editText_id);
第二步:如下比较:
if (text1.getText().toString().equalsIgnoreCase("rotate")) {
red.setRotation(red.getRotation() + 5);
blue.setRotation(blue.getRotation() + 5);
}
首先:初始化
text1
如果是文本视图
,则
text1 = (TextView) findViewById(R.id.textview_id);
text1 = (EditText) findViewById(R.id.editText_id);
如果是EditText
,则
text1 = (TextView) findViewById(R.id.textview_id);
text1 = (EditText) findViewById(R.id.editText_id);
第二步:如下比较:
if (text1.getText().toString().equalsIgnoreCase("rotate")) {
red.setRotation(red.getRotation() + 5);
blue.setRotation(blue.getRotation() + 5);
}
首先,您需要初始化
text1
对象。从日志中可以清楚地看到text1
对象为null
然后,可以使用以下方法比较字符串:
if (text1 && "rotate".equals(text1.getText().toString()))
{
}
首先,您需要初始化
text1
对象。从日志中可以清楚地看到text1
对象为null
然后,可以使用以下方法比较字符串:
if (text1 && "rotate".equals(text1.getText().toString()))
{
}
意思是
text1
isnull
text1在哪里初始化?始终在有问题的代码中发布日志猫。永远不要将其添加为图片。如果您进行了“旋转”。等于(text1)它不会崩溃。意思是text1
isnull
text1在哪里初始化?始终在有问题的代码中发布日志猫。永远不要将其添加为图片。如果您这样做了“rotate”.equals(text1)不会崩溃。只需执行“rotate”.equals(text1)即可,这应该会在NPE上得到注意。您不需要检查null。@StackFlowed同意。Apache StringUtils.isNotBlank(text1)呢?@StackFlowed让OP了解核心内容:)然后他用这些代码优化了他的代码。即使我使用了这些代码,应用程序仍然会崩溃。使用相同的日志,只需执行“rotate”。equals(text1)就可以处理NPE。你不需要检查null。@StackFlowed同意。Apache StringUtils呢。isNotBlank(text1)呢?@StackFlowed让OP学习核心知识:)然后他用这些代码优化他的代码。即使我使用这些代码,应用程序仍然崩溃。使用相同的日志