这是我的xml代码
<Button
android:id="@+id/buttonSign"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dp"
android:layout_weight="0.166"
android:text="±"
android:onClick="ProcessSignInput" />
这是我的java代码
public void ProcessSignInput(View v)
{
Button btn = (Button) v;
if(inputText.length() > 0 && currentInput!="0")
{
if(currentInput.charAt(0) == '-')
{
inputText.setText(currentInput.subSequence(1, inputText.length()));
}
else
{
inputText.setText("-" + currentInput.toString());
}
}
}
这是当前输入的行
String currentInput = inputText.getText().toString();
在我添加这些行之前,每件事情都工作正常。没有应用只是崩溃任何人都可以提前解释造成这次崩溃的原因。
答案 0 :(得分:1)
在扩展活动方法
的开头,你不能在创建方法之外编写代码您必须在Button的Click事件中调用此方法。用这个。如果你在onCreate()方法之外调用它
String currentInput = inputText.getText().toString();
它将始终为null,因为那时您找不到EditText或TextView UI元素的ID,并且该值或字符串包含空数据。所以它总是空指针异常。
public void ProcessSignInput(View v)
{
Button btn = (Button) v;
String currentInput = inputText.getText().toString();
if(inputText.length() > 0 && !currentInput.equalsIgnoreCase(0))
{
if(currentInput.charAt(0) == '-'))
{
inputText.setText(currentInput.subSequence(1, inputText.length()));
}
else
{
inputText.setText("-" + currentInput.toString());
}
}
}
也不要使用==比较String,使用
equals() or equalsIgnoreCase()