7

私はすでに保留中のインテントを使用しています.別のインテントを使用してそのインテントを開始すると、新しいアクティビティに移動します..それを避けたい..インテントを使用せずに、あるアクティビティから別のアクティビティにデータを渡したいですか?

4

4 に答える 4

11

静的メソッドを使用して、あるアクティビティから別のアクティビティにデータを取得できます。以下はサンプル コードです。

最初の活動

public class First extends Activity {

 static First INSTANCE;
 String data="FirstActivity"; 

 @Override
  public void onCreate(Bundle savedInstanceState) {

    INSTANCE=this; 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
   }

 public static First getActivityInstance()
   {
     return INSTANCE;
   }

 public String getData()
   {
     return this.data;
   }
 }

2 番目のアクティビティ:

 public class Second extends Activity {

 String data; 

 @Override
  public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main1);
    data=First.getActivityInstance().getData();  
    Toast.makeText(Second.this,"Data from first activity is"+data, 1).show();
   }
}

お役に立てば幸いです。

于 2013-03-29T06:23:33.297 に答える
1

以下に示すように、グローバル変数クラスを設定してから、Activity1 に設定し、Activity2 でアクセスしてみてはどうでしょうか。

グローバル変数クラス ファイル: Global.java

package <your packagename>;
public class Global {   
    public static String    stringToPass = "";
}

ファイルにグローバル変数を設定します: Activity1.java

Global.stringToPass = "your string value to pass";
    startActivity(new Intent(Activity1.this, Activity2.class));

ファイル内のグローバル変数を読み取ります: Activity2.java

String gotString = "Global.stringToPass;

メモリリークに注意してください。

于 2013-03-29T05:39:44.747 に答える
0

グローバル クラス Application を使用して、送信するデータを共有できます。使う前にデータを設定するだけ!

于 2013-04-10T05:52:34.857 に答える