2013-02-02 131 views
-1

我做了一个简单的android应用程序,我有一些计算是从1活动的EditText值有一些乘法,总和和其他数学程序,并显示在另一个活动edittexs.so双重结果任何人都可以请告诉我是否需要将字符串值转换为“double”进行计算,我该如何做?铸造字符串到双

Activity1.java

Intent ic = new Intent(Calculator_1Activity.this,Calculator2a.class); 
     ic.putExtra("e1", et1.getText().toString()); 
     ic.putExtra("e2", et2.getText().toString()); 
     ic.putExtra("e3", et3.getText().toString()); 
     ic.putExtra("e4", et4.getText().toString()); 
     ic.putExtra("e5", et5.getText().toString()); 
     ic.putExtra("e6", et6.getText().toString()); 
     ic.putExtra("e7", et7.getText().toString()); 
     ic.putExtra("e8", et8.getText().toString()); 

     startActivity(ic); 

,我取其值activity2a,但不能做计算....请帮助.. :(

Activity2a.java

Intent receiveIntent = this.getIntent(); 
     String etz1 = receiveIntent.getStringExtra("e1"); 
     String etz2 = receiveIntent.getStringExtra("e2"); 
     String etz3 = receiveIntent.getStringExtra("e3"); 
     String etz4 = receiveIntent.getStringExtra("e4"); 
     String etz5 = receiveIntent.getStringExtra("e5"); 
     String etz6 = receiveIntent.getStringExtra("e6"); 
     String etz7 = receiveIntent.getStringExtra("e7"); 
     String etz8 = receiveIntent.getStringExtra("e8"); 

     et1.setText(etz1); 
     et2.setText(etz2); 
     et3.setText(etz3); 
     et4.setText(etz4); 
     et5.setText(etz5); 
     et6.setText(etz6); 
     et7.setText(etz7); 
     et8.setText(etz8); 

请帮我

+0

什么是你的真正问题 – Sree

+0

我的fr最后,我只想将editText值转换为double ...以便我可以进行计算。 –

+0

只需加上cast就可以使值加倍。在你的计算逆转之后 – Sree

回答

0

做类似下面

 Intent receiveIntent = this.getIntent(); 
     String etz1 = receiveIntent.getStringExtra("e1"); 

     double erz1Double = Double.parseDouble(etz1); //converting into double 
     // follow same for all the string values, dont forget to add try Catch for number formatException, and null check for string values 

编辑: - 铸造双串,有很多方法可以做类似下面

String erz1String = erz1Double + ""; 

     or 


String erz1String = String.valueOf(erz1Double); 
+0

如何再次施加双重字符串...因为结果也必须显示在“EditText”..所以如果有其他方式..? –

+0

Thnx my brothr ....成功完成.. :)上帝保佑你 –

1

如果你想将字符串转换为加倍进行计算,你可以那样做:

String myStringValue = "15.432"; 
double value = Double.parseDouble(myStringValue); 

在你的情况,你可以这样做:

intent.putExtra("myKey", Double.parseDouble(et1.getText().toString())); 

而最后一件事,你可以得到双倍直接从你的意图使用这个:

double myValue = 1.00; 
try { 
    myValue = getIntent().getDoubleExtra("myKey", 1.00); 
catch(NumberFormatException e){ 
     e.printStackTrace(); 
} 

没有必要得到它作为字符串和转换为双倍,如果你需要的话。

编辑:据我了解,你想从EditText上获得价值为双,使一些计算,比送他们/它活性2和显示结果在另一个EditText。如果这是正确的场景,首先可以强制用户输入数字值,因为您需要使用它们进行计算。如上所述,您可以将字符串转换为double。之后,只需使用putExtra();发送您的值,将它们放入第二个活动中,并在第二个EditText中设置为文本。

+0

如果OP在try/catch块中使用这段代码,那么避免numberformatexception异常并指定默认值是很好的 –

+0

这取决于情况,但在我看来,首先验证用户的输入并让他只键入数字值是很好的。当然,如果我只需要数字。但是,是的,抓住NumberFormatException的好处。 – hardartcore

+0

,但在Activity1的Edittext中输入的值将在字符串中......所以...通过意图“getStringExtra”只能用于......礼仪? –

1

这是必需投下字符串双:

String myStringValue = "30.00"; 
double value = Double.parseDouble(myStringValue);