我在activitya中有10个edittext值,我想添加它们并在newactivity中显示结果。
我的代码
public class activitya extends Activity implements onclicklistener
{
private EditText editext1;
private EditText editext2;
private EditText editext3;
private EditText editext4;
private EditText editext5;
private Button calculate;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activitya);
calculate =(Button)findviewbyid(R.id.button1);
calculate.setonclicklistener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
onadd();
break;
default:
break;
}
}
public void onadd()
{
Bundle bundle = new Bundle();
String value1 = editext1.getText().toString();
String value2 =editext2.getText().toString();
bundle.putString("sendvalue1",value1));
bundle.putString("sendvalue2",value2));
try{
Double Total =Double.parseDouble(value1)+Double.parseDouble(value2);}
catch(NumberFormatException e)
{
e.printstacktrace();
}
bundle.putString("totalvalue",String.valueof(Total));
Intent a = new intent(this,newactivity.class);
a.putExtras(bundle);
startactivity(a);
}
}
新活动中的:
public class newactivity extends activity{
private TextView total;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
total =(TextView)findviewbyid(R.id.text1);
onview();
}
public void onview()
{
Bundle bundle = this.getIntent().getExtras();
String param1 = bundle.getString("totalvalue");
total.setText(param1);
}
只有当我输入所有10个值时才会正确显示添加,很奇怪 如果我甚至不输入一个值,它显示为零, 无法理解问题所在
答案 0 :(得分:0)
在添加所有值之前检查所有EditText
长度。
像,
if(EditText1.getText.length()==0){
Toast.makeText(YourActivity.this,"All fields are mandatory ",
Toast.LENGTH_LONG).show();
}else if(EditText2.getText.length()==0){
} else if(){
..........
}else{
}
您将避免NullPointerException
答案 1 :(得分:0)
你有一个尝试捕获,你没有做任何事情。这通常是不好的做法,因为您不知道代码中何时发生任何事情。
在这种情况下,当您尝试解析空字符串时,Double.parseDouble会抛出异常。 ""
无法解析为double。 "0"
可以。
您需要确保每个编辑文本都包含一个可以解析为double的有效值,或者在尝试解析之前测试每个值。