2014-09-22 15 views
7

Sto recuperando i valori dal Database utilizzando JSON e inserendoli nella casella di selezione. Questo processo è in esecuzione con successo. Ma sto ricevendo un suggerimento Spinner due volte, quando clicco sulla casella di selezione; come posso rimuovere il primo valore di default dal filatore ...Come rimuovere il valore predefinito in spinner android?

Questa è un'istantanea: - spera che capiate il mio problema: enter image description here

Questo è il mio codice: -

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

Simile a http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one. Dai un'occhiata a questo. Ha funzionato per me. – seema

risposta

12

Utilizzare i ArrayAdapter e sovrascrivere il metodo - 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; 
     } 
    }; 

Utilizza il codice di cui sopra e rimuovere il valore predefinito nel menu a discesa.

+0

grazie rahul ... il suo funzionamento .. – Amardeepvijay

+0

non funziona per me puoi aiutarmi? –

+0

Grazie ho cercato molto. Questo sta funzionando – Andrain

Problemi correlati