3

フラグメント レイアウトを実装しようとしています。SplashScreen として機能し、Web からデータを取得して、カスタム オブジェクトの ArrayList を作成するアクティビティがあります。

通常、ListView を使用している場合は、次のようにします。

private ArrayList<Articles> articles;

private void isComplete() {
         Intent intent = new Intent(SplashScreen.this, ListActivity.class);
         intent.putExtra("data", articles);
         startActivity(intent);
         finish();
    }

同じデータをフラグメントに渡すにはどうすればよいですか? あなたの助けに感謝します。

4

3 に答える 3

3

その単純なテイクグローバルクラスとdeclare public static ArrayList<Articles> articles = new ArrayList<Articles>; メインアクティビティGlobal.articles = articles; これで、Projectのどこでも使用できます。

于 2012-04-22T06:12:14.853 に答える
2

配列リストのタイプに依存します

  • putIntegerArrayListExtra(文字列名、ArrayList 値)

  • putParcelableArrayListExtra(文字列名、ArrayList 値)

  • putStringArrayListExtra(文字列名、ArrayList 値)

  • putCharSequenceArrayListExtra(文字列名、ArrayList 値)

次に、 put を get に置き換え、引数としてキー文字列を指定することで、次のアクティビティから読み取ることができます。

myIntent.getStringArrayListExtra("arrayPeople");
于 2012-04-22T05:02:40.923 に答える
-2

putExtra を使用して値をインテントに渡します。getSerializableExtra メソッドを使用してデータを取得する

2 つのアクティビティ A と BI が ArrayList> 値をアクティビティ B に渡したい場合、クラス A で次のコードを使用します。

アクティビティ A からアクティビティ B に ArrayList> データを渡す

Intent intent = new Intent(this, B.class);
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("sunil", "sahoo");
ArrayList<HashMap<String, String>> arl = new ArrayList<HashMap<String, String>>();
arl.add(hm);
intent.putExtra("arraylist", arl);
startActivityForResult(intent, 500);

アクティビティ B で値を取得する

クラス B では、次のコードを記述してデータを取得します

ArrayList<HashMap<String, String>> arl =(ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
System.out.println("...serialized data.."+arl);
于 2012-04-22T05:03:54.373 に答える