1

そのため、メイン アクティビティで提供される 2 つの EditText にユーザーが入力した 2 つの整数値を取得し、それらを加算しようとしています。次に、Android アプリケーションを 2 番目のアクティビティに切り替え、EditText ボックスに、前の (メイン) アクティビティから 2 つの EditText ボックスに入力された 2 つの値の合計を表示します。

私は正しい方向に進んでいると思いますが、2 番目のアクティビティで合計を取得する方法がよくわかりません。バンドルなどをいじってみましたが、まだよくわかりません。

* *いくつかの提案を反映するために再編集しました. 2 番目のアクティビティではまだ合計が表示されません...何らかの変換エラーだと思います。

***私はそれが2番目のアクティビティと関係があるとほぼ確信しています..最初のアクティビティは私には合っているように見えます.

**完全!変換ミスでした。助けてくれてありがとう: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);

    }   
}
4

3 に答える 3

1

intedittext から直接値を割り当てることはできません。次のような編集テキストを割り当てる必要があります

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

あなたの2番目と同じです。次に、値を取得します

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

もちろん2番目も同じです。次に、これら 2 つを一緒に追加intsして、単純に で渡すことができintent.putExtra("sume, sum)ます。次に、2番目にそれらを取得しActivityますgetIntent()

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

として渡す場合は、このようにして の値をint取得する必要があります。しかし、あなたがとして渡すなら、あなたは大丈夫ですStringintString

于 2012-12-01T23:03:41.283 に答える
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);
于 2012-12-01T22:55:18.760 に答える
-1

とても近いです!最初のアクティビティでは、直前にこれを行うことを忘れないでくださいstartActivity(intent)

intent.putExtras(bundle);

次に、2番目のアクティビティクラスのonCreateメソッドの最後に、次のことを試してください。

String valu = getIntent().getExtras().getString("sum");
EditText addsum = (EditText)findViewById(R.id.editText1);
addsum.setText(valu, TextView.BufferType.NORMAL);
于 2012-12-01T22:57:17.207 に答える