2012-12-01 34 views
1

因此,爲此,我嘗試在主活動中提供的2個EditText中將2個整數值用戶輸入並將它們相加。然後,我想讓android應用程序切換到第二個活動,並在EditText框中顯示從前一(主)活動輸入到2個EditText框中的2個值的總和。從1活動中取值併發送到第2活動

我覺得我在正確的軌道上,但我不是很肯定如何獲得在第二個活動的總和。我試過用捆綁等方式搞亂,但我仍然無法弄清楚。

* *重新編輯以反映一些建議。第二項活動仍然沒有顯示總數...我認爲這是某種轉換錯誤。

***,我幾乎可以肯定它是與第二Activity..the首先查找我的權利

**完美!這是一個轉換錯誤。感謝所有幫助:d

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.widget.EditText; 


public class MainActivity extends Activity 
{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

    public void OnClick(View v) //android:onClick="OnClick" added to activity_main.xml for this button 
    { 
     Intent intent = new Intent(MainActivity.this, Summation.class); 
    EditText v1 = (EditText)findViewById(R.id.editText1); 
    EditText v2 = (EditText)findViewById(R.id.editText2); 
    int first = Integer.parseInt(v1.getText().toString()); 
    int second = Integer.parseInt(v2.getText().toString()); 
    String sum = String.valueOf(first + second); 
    intent.putExtra("sum", sum); 
    startActivity(intent);   
    } 
} 

次活動類

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.widget.EditText; 

public class Summation extends Activity 
{ 
    //Second Activity 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_2);   
     String sum = (getIntent().getExtras().getString("sum")); 
     EditText addsum = (EditText)findViewById(R.id.editText1); 
     addsum.setText(sum); 

    } 
} 

回答

1

您不能將你的int值直接從edittext。您需要分配編輯文本,如

EditText eText1 = (EditText) findViewById(R.id.yourfirstedittext) 

和您的第二個相同。然後得到的值

int firstNum = Integer.parseInt(eText1.getValue.toString())

當然與第二相同的和。然後,您可以將這兩個ints添加在一起,只需將它們與intent.putExtra("sume, sum)一起傳遞。然後讓他們在你的第二個ActivitygetIntent()

Intent ci = getIntent(); 
final int sum = ci.getIntExtra("sum", yourDefaultIntValue) 

如果您傳遞作爲int你需要做這種方式並得到intString值。但是,如果你通過爲String那麼你的罰款

+0

據我所知,沒有findValueByID ...除非你的意思是findViewByID。或者至少eclipse無法找到它或谷歌的任何文檔。 – user1780149

+0

是的,對不起,我有4個孩子跑來跑去......這就是我的意思 – codeMagic

+0

看起來更好,但我不知道你需要 intent.setClass(MainActivity.this,Summation.class)' 這裏。你應該能夠在你的意圖聲明中設置 '意圖intent =新意圖(MainActivity.this,Summation.class' – codeMagic

0

嗯,幾乎是完美的,但增加值捆綁是沒有意義的,如果你不捆綁軟件安裝到縮進,這是步驟你忘了:)因此,無論添加

intent.putExtras(bundle); 

或者使你的代碼不使用額外的代碼,而是看起來像:

Intent intent = new Intent(); 
    int value1 =(R.id.editText1); 
    int value2 =(R.id.editText2); 
    double sum = (value1 + value2); 
    intent.putExtra("sum", sum); 
    intent.setClass(MainActivity.this, Summation.class); 
    startActivity(intent); 
-1

太接近了!在你的第一個活動記得startActivity(intent)之前,這樣做的權利:

intent.putExtras(bundle); 

然後在你的第二個活動類的onCreate方法的末尾試試這個:

String valu = getIntent().getExtras().getString("sum"); 
EditText addsum = (EditText)findViewById(R.id.editText1); 
addsum.setText(valu, TextView.BufferType.NORMAL); 
+0

我不知道什麼是如此可怕的錯誤與我的回答,有人不得不downvote呢?有人能指出我犯的錯嗎? – ZeroOne

+0

我還不太清楚什麼(TextView.BufferType。正常)意味着或如何使用它......這就是爲什麼我沒有使用你的代碼,但絕不認爲你的答案是不好的。如果我有足夠的代表,我會把它備份,因爲我不知道爲什麼它是downvoted大聲笑 – user1780149

+0

從[EditText文檔](http://developer.android.com/reference/android/widget/EditText.html ):設置此TextView要顯示的文本(請參閱setText(CharSequence)),並設置它是否存儲在可修改樣式/可擴展緩衝區中,以及它是否可編輯.'枚舉的可能值爲「可編輯」, 「正常」和「跨度」。我只是選了一個,但如果你需要其他一些功能,你可以改變它。基本上這一點只是讓EditText顯示數字。 :) – ZeroOne

相關問題