2012-04-04 13 views
0

データベースからメニューコードを取得できますforループ内で印刷できます。すべてのメニューコードを印刷します。私はループをプリントアウトした場合の側には、それはまた、私はすべてのmenucodesを印刷したいループのためのサイドアウトすべての値を印刷する方法androidでループの外側に印刷する

  my code 
    JSONArray json = jArray.getJSONArray("mainmenu"); 

     for (i = 0; i < json.length(); i++) { 

       JSONObject e = json.getJSONObject(i); 
      map.put("itemcode", e.getString("menucode")); //here i print all values 


     } 
     list.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      System.out.println(map.get("itemcode"));//here i print only last value(here i want print all values how can i do this) 
      // TODO Auto-generated method stub 
      Intent intent=new Intent(getApplicationContext(),FoodMenu.class); 
      startActivity(intent); 
     } 
    }); 

最後の値だけを印刷すること...

+0

なぜループ外で印刷したいのですか?そのループの外側で印刷したい場合は、別のループを作成してJSONArrayを繰り返し処理する必要があります。これは、同じ配列全体を2回、マップに値を入れるために1回、印刷するための2番目のループを繰り返します。 –

答えて

1

あなたはマップを使用している、とあなたは同じキーを持っている私を助けてください常に("itemcode")、各挿入がマップへの前回の挿入よりも優先されます。Listを使用するか、別のキーを使用するだけです。

与える例でコメントへの回答:使用

  1. ArrayList/List

    List<String> codez = new ArrayList<String>(); 
    for (i = 0; i < json.length(); i++) { 
        JSONObject e = json.getJSONObject(i); 
        codez.add(e.getString("menucode")); 
    } 
    
  2. を異なるキーを使用する:

    for (i = 0; i < json.length(); i++) { 
        JSONObject e = json.getJSONObject(i); 
        map.put("itemcode" + i, e.getString("menucode")); 
    } 
    

最後に、マップ内に2つの同一のキーを持つことはできません。その目的を破ってしまい、無駄です。キーで値を取得しない場合、キーが使用されていない場合は、最初にマップを使用しないでください。

+0

私はリストを使用したくありません。文字列配列にメニューコードを格納する方法を教えてください。 – prakash

+0

@prakash - 編集 – MByD

+0

を参照してください。外側ループ私はすべてのコードを印刷します。私は(codez.equls( "1"))別のページをナビゲートします。どのように私はリストを使用して行うことができます – prakash

関連する問題