0
Intent i = new Intent(getApplicationContext(), NewActivity.class);
i.putExtra("new_variable_name","value");
startActivity(i);

Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("new_variable_name");
}

私の状況は少し異なります: 別のものを呼び出すメイン アクティビティがあります (インデックス アクティビティ):

Intent index = new Intent(this, Index.class);
startActivity(index);

インデックス アクティビティから、ユーザーはリストから選択できます。

したがって、インデックスのクラス変数をメイン アクティビティに渡す必要があります。どのように?

ありがとう!

4

3 に答える 3

0

アクティビティのメソッドを使用する必要がありますstartActivityforResult

ここで使用方法の例を参照してください。

基本的には、Bundlesアクティビティ間でデータを通信するために使用するという考え方です。そうすれば、リソース不足のためにしばらく前にアクティビティが破棄された場合でも、システムによってアクティビティを復元できます。

于 2012-11-25T16:47:00.947 に答える
0
Intent intent= new Intent(this, Index.class);
i.putExtra("data", "data");
startActivity(intent);

そしてIndexクラスではこれを使用します:

Bundle extras = getIntent().getExtras();
String data = extras.getString("data");
于 2012-11-25T16:50:26.327 に答える
0

わかりました、私はやった:

主な活動:

Intent i = new Intent(this, Index.class);
  startActivityForResult(i, 1);

索引: 活動:

 button1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {   
            String result = "1";
            Intent returnIntent = new Intent();
             returnIntent.putExtra("result",result);
             setResult(RESULT_OK,returnIntent);     
             finish();

主な活動:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {

         if(resultCode == RESULT_OK){

          String result=data.getStringExtra("result");
          value=result;
     }

    if (resultCode == RESULT_CANCELED) {
         //Write your code on no result return 

    }}
    }

「結果」はインデックスアクティビティからの正しい変数ですが、その変数をそのメソッドだけでなくメインクラスにも使用する必要があります。

したがって、「結果」変数をクラス全体で共有したいと思います。

方法は何ですか?

ありがとう!

于 2012-11-25T18:36:09.207 に答える