my * .java:
package com.google.multiplier;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class Multiplier extends Activity {
private EditText num1,num2,res;
private int result;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_multiplier);
num1=(EditText)findViewById(R.id.EditText1);
num2=(EditText)findViewById(R.id.EditText2);
res=(EditText)findViewById(R.id.editText3);
result=(Integer.parseInt(num1.getText().toString()))*(Integer.parseInt(num2.getText().toString()));
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
res.setText(Integer.toString(result));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_multiplier, menu);
return true;
}
}
和布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<EditText
android:id="@+id/EditText1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="50dp"
android:layout_marginTop="126dp"
android:ems="10"
android:inputType="number" />
<EditText
android:id="@+id/EditText2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/EditText1"
android:layout_alignBottom="@+id/EditText1"
android:layout_marginLeft="24dp"
android:layout_toRightOf="@+id/EditText1"
android:ems="10"
android:inputType="number" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/EditText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp"
android:text="@string/bt" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="27dp"
android:ems="10"
android:inputType="numberDecimal" />
</RelativeLayout>
您可能会看到它是一个简单的乘数。我在Android 4.0模拟器中启动它并获得强制关闭错误,但编译器在运行之前没有发现任何错误。我怎样才能找到问题所在?
答案 0 :(得分:0)
Integer.parseInt
将失败。您应该在result
中计算OnClickListener
。
答案 1 :(得分:0)
将计算移至按钮单击实现
@Override
public void onClick(View v) {
result=(Integer.parseInt(num1.getText().toString()))*(Integer.parseInt(num2.getText().toString()));
res.setText(Integer.toString(result));
}
现在,正在发生的事情是在onCreate方法中,当它尝试创建您的活动时,在计算它num1.getText().toString()
时""
。在做,
Integer.parseInt("")
,编纂者感到困惑。
你说你没有得到任何例外。令人惊讶的是,我在使用您的代码时得到了NumberFormatException
。