如何划分两个EditTexts
?
ed number one = 80
ed number two = 3.0625
但是当我点击按钮来分割它们时,应用程序就会关闭一个力量。如何解决这个问题?
我的xml:
<EditText
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:numeric="80" />
<EditText
android:id="@+id/two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="number"
android:numeric="3.0625" />
<EditText
android:id="@+id/result"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
这是代码
public class main extends Activity {
EditText one,two,result;
Button calc;
BigDecimal onex,twox;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calc = (Button) findViewById(R.id.button1);
one = (EditText) findViewById(R.id.one);// = 80
two = (EditText) findViewById(R.id.two);// = 3.0625
result = (EditText) findViewById(R.id.result);// result
calc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
onex = new BigDecimal(one.getText().toString());
twox = new BigDecimal(two.getText().toString());
result.setText((onex).divide(twox).toString());
}
});
}
如何在没有任何力量关闭的情况下正确分割工作?
答案 0 :(得分:0)
您必须获取edittexts的文本值,并在您的情况下将它们转换为BigDecimal。尝试以下代码:
calc.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BigDecimal bigOne, bigTwo, bigResult;
try {
bigOne = new BigDecimal(one.getText().toString());
bigTwo = new BigDecimal(two.getText().toString());
} catch (Throwable t) {
Toast.makeText(this, "Fill texts with some numeric values" + t, Toast.LENGTH_SHORT).show();
return;
}
bigResult = BigDecimal.ZERO;
try {
bigResult = bigOne.divide(bigTwo);
} catch (Throwable t) {
Toast.makeText(this, "Check your numeric values" + t, Toast.LENGTH_SHORT).show();
return;
}
result.setText(String.valueOf(bigResult));
}
});
修改另外,android:numeric
只能有integer
,signed
和decimal
。你错误地使用它。
android:numeric="3.0625"
应该是;
android:numeric="integer"
或android:numeric="signed"
或android:numeric="decimal"
要将值设置为editTexts,请使用:
android:text="80"
和android:text="3.0625"
答案 1 :(得分:0)
当值不包含小数点(80)时,BigDecimal会将其视为零。
插入80.0
。