2014-09-22 17 views
7

Tôi đang tìm nạp các giá trị từ Cơ sở dữ liệu bằng cách sử dụng JSON và chèn chúng vào trong spinner. Quá trình này đang chạy thành công. Nhưng tôi nhận được một gợi ý Spinner hai lần, khi tôi bấm vào spinner; làm thế nào tôi có thể loại bỏ các giá trị mặc định đầu tiên từ spinner ...Làm thế nào để loại bỏ giá trị mặc định trong android spinner?

Đây là bản chụp: - hy vọng bạn hiểu vấn đề của tôi: enter image description here

Đây là mã của tôi: -

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

Tương tự như http://stackoverflow.com/questions/867518/how-to-make-an-android-spinner-with-initial-text-select-one. Hãy xem cái này. Nó làm việc cho tôi. – seema

Trả lời

12

Sử dụng ArrayAdapter và Ghi đè phương thức - 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; 
     } 
    }; 

Sử dụng mã được đề cập ở trên và xóa giá trị mặc định trong trình đơn thả xuống.

+0

nhờ rahul ... hoạt động của nó .. – Amardeepvijay

+0

không hoạt động cho tôi, bạn có thể giúp tôi không? –

+0

Cảm ơn tôi đã tìm kiếm rất nhiều. Cái này đang hoạt động – Andrain

Các vấn đề liên quan