2014-09-22 7 views
7

मैं JSON का उपयोग कर डेटाबेस से मान ला रहा हूं और उन्हें स्पिनर में डाल रहा हूं। यह प्रक्रिया सफलतापूर्वक चल रही है। लेकिन जब मैं स्पिनर पर क्लिक करता हूं, तो मुझे दो बार स्पिनर संकेत मिल रहा है; कैसे मैं स्पिनर से पहले डिफ़ॉल्ट मान ...स्पिनर एंड्रॉइड में डिफ़ॉल्ट मान को कैसे हटाया जाए?

निकाल सकते हैं इस स्नैपशॉट है: - आशा है कि आप मेरी समस्या को समझते हैं: enter image description here

यह मेरा कोड है: -

private class GetCategories extends AsyncTask<Void, Void, Void> { 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected Void doInBackground(Void... arg0) { 
     ServiceHandler jsonParser = new ServiceHandler(); 
     String json = jsonParser.makeServiceCall(URL_CATEGORIES, 
       ServiceHandler.GET); 
     if (json != null) { 
      try { 
       JSONObject jsonObj = new JSONObject(json); 
       if (jsonObj != null) { 
        JSONArray categories = jsonObj 
          .getJSONArray("categories"); 
        categoriesList.clear(); 
        for (int i = 0; i < categories.length(); i++) { 
         JSONObject catObj = (JSONObject) categories.get(i); 
         Category cat = new Category(
           catObj.getString("bus_type_id"), 
           catObj.getString("bus_type")); 
         categoriesList.add(cat); 
        } 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } else { 
      Log.e("JSON Data", "Didn't receive any data from server!"); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     super.onPostExecute(result); 
     populateSpinner(); 
    } 
} 




private void populateSpinner() { 
    List<String> lables = new ArrayList<String>(); 
    lables.add("Choose Type"); 
    for (int i = 0; i < categoriesList.size(); i++) { 
     lables.add(categoriesList.get(i).getbus_type()); 
    } 
    // Creating adapter for spinner 
    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, lables); 
    // Drop down layout style - list view with radio button 
    spinnerAdapter 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    // attaching data adapter to spinner 
    typeSpinner.setAdapter(spinnerAdapter); 
    typeSpinner.setOnItemSelectedListener(typeSelectedListener); 
} 

private OnItemSelectedListener typeSelectedListener = new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, 
      int position, long id) { 
     if (typeSpinner.getSelectedItem().toString() == "Choose Type") { 
      str = ""; 
      typeSpinnercity.getSelectedView(); 
      typeSpinnercity.setEnabled(false); 
     } else { 
      ok.setEnabled(true); 
      str = typeSpinner.getSelectedItem().toString(); 
      typeSpinnercity.getSelectedView(); 
      typeSpinnercity.setEnabled(true); 
      if (Utils.checkInternet(CutomerOfferActivity.this)) { 
       new GetCategoriesCity().execute(); 
      } 
     } 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
}; 
+0

http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one के समान। इसे देखें। यह मेरे लिए काम किया। – seema

उत्तर

12

उपयोग ArrayAdapter और विधि ओवरराइड - getDropDownView ..

ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, lables){ 
     @Override 
     public View getDropDownView(int position, View convertView, ViewGroup parent) {    

      View v = null; 

      if (position == 0) { 
       TextView tv = new TextView(getContext()); 
       tv.setHeight(0); 
       tv.setVisibility(View.GONE); 
       v = tv; 
      } 
      else { 

       v = super.getDropDownView(position, null, parent); 
      } 

      parent.setVerticalScrollBarEnabled(false); 
      return v; 
     } 
    }; 

उपयोग जैसा कि ऊपर उल्लेख कोड और ड्रॉप-डाउन में डिफ़ॉल्ट मान को हटा दें।

+0

धन्यवाद राहुल ... इसका काम .. – Amardeepvijay

+0

मेरे लिए काम नहीं कर सकता क्या आप मेरी मदद कर सकते हैं? –

+0

धन्यवाद मैंने बहुत कुछ खोजा। यह काम कर रहा है – Andrain

संबंधित मुद्दे