アクティビティ間でデータを渡す

Possible Duplicate:
How do I pass data between activities in Android?

私はこれを理解しようとしている間、テーブルの向こうに頭を叩きました。私はJavaとAndroidプラットフォームの両方に新しいので、私は2番目のアプリケーションを書いています。一言で言えば、私は最初のアクティビティでいくつかの情報を入力したいと思っています。そのアクティビティは、それらの入力を受け取り、一連の数学的計算を実行し、その結果を別のアクティビティでいくつかのeditTextに表示します。私の考えでは、アプリケーションは入力を受け取り、計算を実行し、いくつかの変数に格納します。次に、変数は2番目のアクティビティに渡され、結果が表示されます。私はほとんどのアプリケーションをコード化しており、入力を保持して1つのアクティビティに結果を表示すると、正しく動作するようになります。表示された結果を他のアクティビティに表示する方法に関するアイデアはありますか?ここの方向は大変ありがとうございます。

0
このトピックの他の質問については、 stackoverflow.com/q/6646979/964741 をご覧ください。
追加された 著者 RajaReddy PolamReddy,
追加された 著者 aNi,

6 答え

これはインテントを使用して行うことができます。インテントの使用の1つは、アクティビティ間でデータを渡すことです。シナリオでは、何をする必要がありますか?

ステップ1

ユーザからの入力を受けた後、計算を行い、結果を    変数
あなたが使用している意図でそれを束ねる     次の活動を開始する。あなたは以下のコードでこれを達成することができます

Intent intent = new Intent();
            intent.putExtra("KeyForResult1", );
            intent.putExtra("KeyForResult2",);
            startActivity(this, nextactivity.class);

次のアクティビティでは、インテントを取得し、変数の値を抽出する必要があります    達成することができる

variabletype variable = getIntent().getExtras().get("KeyForResult1");
   variabletype variable = getIntent().getExtras().get("KeyForResult2");
3
追加された
ansを受け入れてください。
追加された 著者 Dinesh Prajapati,
あなたは私のヒーローです!
追加された 著者 chris,

あなたはこれを使うことができます:

ActivityOne.class:

//compute the data and get the result here
//suppose results are,

    int resultInt=24;
    String resultString="abc";

    Intent intent=new Intent(getApplicationContext(),ActivityTwo.class);
    intent.putExtra("ResultInInteger",resultInt);
    intent.putExtra("ResultInString",resultString);
    startActivity(intent);

ActivityTwo.class が開き、次のようなデータを取得できます。

int resultInt=getIntent().getIntExtra("ResultInInteger");
String resultString=getIntent().getStringExtra("ResultInString");
1
追加された
うん...私の間違い! 2番目のアクティビティのインテントからInteger Extraを取得する際にデフォルト値を指定する必要があります。int resultInt = getIntent()。getIntExtra( "ResultInInteger"、0);代わりに、上記の答えに。
追加された 著者 Hiral,
たぶん私は何か間違っていますが、2番目のクラスにコードを追加すると、 "getIntExtra"スニペットでエラーが発生します。私は "メソッドgetIntExtra(String、int)型のインテントは引数(文字列)には適用されません"と思っていますか?
追加された 著者 chris,

私は研究したデータが混在しているので、それを理解することができました。それは、最終的には

int resultInt=24;

Intent myIntent = new Intent(CalPalActivity.this, ResultsActivity.class);
myIntent.putExtra("intVariableName", resultInt);
startActivity(myIntent);

最初のアクティビティで

Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("intVariableName", 0);

2番目になぜそれがこのように働いて、 "Intent型のメソッドgetIntExtra(String、int)が引数(String)に適用されない"のようなエラーを私に与えるのは、私が決して知りません。クイックフィックスでも修正されませんでした(私はただ新しいエラーを出し続けました)。全体的に、高価な(5時間以上)レッスンです。あなたのお手伝いは大変ありがとうございました。私は言語についてもっと理解して学ぶことができました。ありがとうございました!

1
追加された

インテントをお読みください。あなたは、URLパラメータのように、エキストラをインテントに格納することができます。そのインテントを使用して次のアクティビティを開始すると、そのインテントのエクストラからデータを抽出できます。

0
追加された

いくつかのオプションがあります。あなたの仕事には、インテントのエクストラにデータを渡すことを選択します。

For all options read this

0
追加された

ここにオプションがあります。 最初の活動では:

Intent yourNextActivityIn=new Intent(this,yourNextActivity.class);
yourNextActivityIn.putExtra("tag",valueToBePassed);
startActivity(yourNextActivityIn);

第2のアクティビティ:

//If value is an Integer with default value 1
int value = getIntent().getIntExtra("tag", 1);

else

//if value is a string
String value = getIntent().getStringExtra("tag");   
0
追加された