Android Code: API JSON Data into Spinner


Initialize the variables

List<String> listdata;
private static final String TAG_Data = "Data_";
private static String url = "";
String[] itemdata;
JSONArray contactstate = null;
Spinner spinner_data;


-------------------------------------------------------------------------------------------------
in oncreate() method,

listdata= new ArrayList<String>();
listdata.add("Select Data");
ArrayAdapter<String> dataAdapterstate = new ArrayAdapter<String>
      (this,  R.layout.my_spinner_text,listdata);
       
dataAdapterstate.setDropDownViewResource
      (android.R.layout.simple_spinner_dropdown_item);

spinner_data=(Spinner)findViewById(R.id.spinner_data);
spinner_data.setAdapter(dataAdapterstate);
spinner_data.setOnItemSelectedListener(new OnItemSelectedListener() 
{
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
{
String selstate=spinner_data.getSelectedItem().toString();
if(selstate.equals("Select Data"))
{

}
else
{
}
}
public void onNothingSelected(AdapterView<?> parent) 
{

}           
});


call api in oncreate() method,

new GetData().execute();
-----------------------------------------------------

* api to get all data
* @author ankesh
*
*/
private class GetData extends AsyncTask<Void, Void, Void> {
 
       @Override
       protected void onPreExecute() {
           super.onPreExecute();  
       }
 
       @Override
       protected Void doInBackground(Void... arg0) {
           // Creating service handler class instance
           ServiceHandler sh = new ServiceHandler();
 
           // Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
 
           Log.d("Response: ", "> " + jsonStr);
 
           if (jsonStr != null) {
               try {
                   JSONObject jsonObj = new JSONObject(jsonStr);
                   contactdata = jsonObj.getJSONArray("JSON_Array_Object");
 
                   itemdata= new String[contactdata.length()];
                   
                   for (int i = 0; i < contactdata.length(); i++) {
                       JSONObject c = contactdata.getJSONObject(i);
                       
                       itemdata[i]=c.getString(TAG_Data);

                   }
               } catch (JSONException e) {
                   e.printStackTrace();
               }
           } else {
               Log.e("ServiceHandler", "Couldn't get any data from the url");
           }
 
           return null;
       }
 
       @Override
       protected void onPostExecute(Void result) {
           super.onPostExecute(result);

           try{
           
           ArrayAdapter<String> adapter = 
                   new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, itemdata);       
           adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           
           /**
            * check data reterieve or not from server
            */
           if(adapter.getCount()!=0)
            spinner_data.setAdapter(adapter);
           
           }
           catch(Exception ex){
Toast.makeText(this, ex.toString(), Toast.LENGTH_LONG).show();
           }
}
       }
 
   }



Comments