2012-03-10 15 views
2

ArrayList要素を次のインテントに渡したいと思っています。ArrayList要素を次のインテントに渡す

try{ 
       JSONArray jArray = new JSONArray(result); 
       JSONObject json_data=null; 
       for(int i=0;i<jArray.length();i++) 
       { 
        json_data = jArray.getJSONObject(i); 
        r.add(json_data.getString("Nom_Serveur")); 
       } 
       setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, r)); 
       ListView list = getListView(); 
       list.setTextFilterEnabled(true); 
       list.setOnItemClickListener(new OnItemClickListener(){ 

       public void onItemClick(AdapterView<?> arg0, View arg1, 
         int arg2, long arg3) { 
        Intent i = new Intent(Serveur_EnPanne.this, Info_serveur.class); 
        i.putExtra("key", ??) 
        startActivity(i); 

       } 

答えて

0

この方法を実行します。

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     Intent i = new Intent(Serveur_EnPanne.this, Info_serveur.class); 
     i.putExtra("key", arg0.getSeletectedItem().toString()); 
     startActivity(i); 
} 

または

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
     Intent i = new Intent(Serveur_EnPanne.this, Info_serveur.class); 
     i.putExtra("key", r.get(arg2)); 
     startActivity(i); 
} 
+0

r.get(arg2)を使用すると、他のクラスでどのように取得されますか? – oussemos

0

このcode.Hereの配列リストを使って、あなたのArrayListです。

ArrayList<String[]> arraylist=new ArrayList<String[]>(); 
    intent = new Intent(this,Your.class); 
     intent.putExtra("al2", arraylist); 

はその後

putIntegerArrayListExtra(String name, ArrayList<Integer> value) 

putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value) 

putStringArrayListExtra(String name, ArrayList<String> value) 

putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value) 

あなたは、キーの文字列を取得して置く置き換えることによって、あなたから次のアクティビティを読むことができます

Bundle extras = getIntent().getExtras(); 
arraylist= extras.getStringarray("al2"); 
0

ArrayListには、以下の方法により解析された他のクラスでそれを取得するには引数として、例えば

myIntent.getStringArrayListExtra("arrayPeople"); 
配列リストを渡すの

Onother方法は、バンドルである:これはあなたを助けるかもしれない

Bundle b = getIntent().getExtra().putParcelableArrayListExtra(String name); 

希望:

Intent i = new Intent(this,name.class); 
Bundle b = new Bundle(); 
b.putIntegerArrayListExtra(String name, ArrayList<Integer> value); 
//b.putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value); 
//b.putStringArrayListExtra(String name, ArrayList<String> value); 
i.putExtra(String name,b); 
startActivity(i); 

は別の意図にデータを取得します。

関連する問題