2014-11-17 30 views
0

在我的android应用程序中,Iam有6个spinners,我需要根据类别wise.and Iam使用json检索数据并发回到android但在这里我没有得到如何分配数据spinners.Please帮我解决这个问题。从android数据库中加载多个spinners在android中

public void getItems(int l) 
{ 
    //Toast.makeText(getApplicationContext(), ""+l, 5000).show(); 
    AsyncHttpClient client = new AsyncHttpClient(); 
    RequestParams autofill_params = new RequestParams(); 
    autofill_params.put("sending_category_id_JSON",autofill_composeJSONfromSQLite(l)); 
    //Toast.makeText(getApplicationContext(), "Sending JSON ==> "+autofill_params,5000).show(); 
    client.post("http://www.XXXX.com/mobile_cycle/spares_auto_fill.php", autofill_params, new AsyncHttpResponseHandler() 

     { 
     @Override 
     public void onSuccess(String response) 

     {  
      //Toast.makeText(getApplicationContext(), "Responce is ==>"+response, 5000).show(); 
      //spinner_updater(); 
      Gson gson = new GsonBuilder().create(); 
      try 
      { 
       JSONArray arr = new JSONArray(response); 
       //Toast.makeText(getApplicationContext(), "Length ==> "+arr.length(), 5000).show(); 
       //public String temp_array[]; 
       final String[] temp_array = new String[5]; 
       for (int i = 0; i < arr.length(); i++) 
       { 
        JSONObject obj = (JSONObject) arr.get(i); 
        //auto_first_name = obj.get("name").toString(); 
        //Toast.makeText(getApplicationContext(), "Length ==> "+arr.length(), 5000).show(); 
        String item_name = obj.get("name").toString(); 
        temp_array[i] = item_name; 
        //spinner_updater(item_name); 
       } 

       spinner_updater(temp_array); 

      } 
      catch (JSONException e) 
      { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      //fillData(autofill_network_flag); 
     } 

     @Override 
     public void onFailure(int statusCode, Throwable error,String content) 

     { 

      if (statusCode == 404) 

      { 
       Toast.makeText(getApplicationContext(), "Requested resource not found", Toast.LENGTH_LONG).show(); 
      } 

      else if (statusCode == 500) 

      { 
       Toast.makeText(getApplicationContext(), "Something went wrong at server end", Toast.LENGTH_LONG).show(); 
      } 

      else 

      { 
       Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet]", 
         Toast.LENGTH_LONG).show(); 
      } 
     } 

    }); 
    } 

public void spinner_updater(String[] item_name) 

{ 

    Toast.makeText(getApplicationContext(), "Inside Updater Item Length ==> "+item_name.length, 5000).show(); 

    for(int length = 0; length < item_name.length; length++) 

    { 
     String empty_temp = " "; 

     String temp_item = item_name[length]; 

     if(temp_item.equals(empty_temp)) 

     { 
      //Toast.makeText(getApplicationContext(), "Item ==> "+item_name[length], 5000).show(); 
     } 

     else 

     { 
      Toast.makeText(getApplicationContext(), "Item ==> "+item_name[length], 5000).show(); 
     } 
    } 

    ArrayAdapter<String> adp2 = new ArrayAdapter<String> 
    (this, android.R.layout.simple_dropdown_item_1line, str1); 
    sp2.setAdapter(adp2); 

} 
+0

你在哪里在DB – raj

+0

插入数据根据我的情况,有在我的数据库5个CATEGORY_ID所以根据他们我应该加载5个纺纱与数据。我已经检索了数据,但我现在应该将它们存储在数组中,并将该数组分配给微调适配器。 – Vandana

+0

这个链接是从mysql数据库填充微调器的一个很好的例子。 http://www.androidhive.info/2013/12/android-populating-spinner-data-from-mysql-database/ –

回答

0

首先创建列表多达微调

  List<String> list1, list2, list; 

     list1 = new ArrayList<String>(); 
     list2 = new ArrayList<String>(); 
     list3 = new ArrayList<String>(); 


    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    spinner3 = (Spinner) findViewById(R.id.spinner3); 

现在数据从数据库或JSON

   SQLiteDatabase db = dbh.getReadableDatabase(); 

       Cursor cursor = db.rawQuery("select * from frnds", null); 
      adding first row items in first list  
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor 
         .moveToNext()) { 
        // do what you need with the cursor here 
       list1.add(cursor.getString(1)); 
        } 

添加到每个列表中的第二个列表中添加第二行项目

for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor 
          .moveToNext()) { 
         // do what you need with the cursor here 
        list2.add(cursor.getString(2)); 
         } 

在第三行中添加第三行项目名单

for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor 
         .moveToNext()) { 
        // do what you need with the cursor here 
       list3.add(cursor.getString(3)); 
        } 
       cursor.close(); 

设置列表微调器

ArrayAdapter<String> spinner1Adapter = new ArrayAdapter<String>(
           this, android.R.layout.simple_spinner_item, 
           list1); 
         spinner1Adapter 
           .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
         spinner1.setAdapter(spinner1Adapter); 

     ArrayAdapter<String> spinner2Adapter = new ArrayAdapter<String>(
           this, android.R.layout.simple_spinner_item, 
           list2); 
         spinner2Adapter 
           .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
         spinner2.setAdapter(spinner2Adapter); 

     ArrayAdapter<String> spinner3Adapter = new ArrayAdapter<String>(
           this, android.R.layout.simple_spinner_item, 
           list3); 
         spinner3Adapter 
           .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 


       spinner3.setAdapter(spinner3Adapter); 
+0

嘿@raj tq为你的答复,但我问如何从MySQL数据库检索他们。 – Vandana

+0

您需要创建循环,如上面代码 – raj

+0

中所定义的那样,或者显示我的代码 – raj

相关问题