2013-02-02 196 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);