如何在spinner android中删除默认值?

我使用 JSON从数据库中获取值并将它们插入到微调器中.此过程已成功运行.
但是当我点击旋转器时,我收到了两次Spinner提示;如何从微调器中删除第一个默认值…

这是快照: – 希望你了解我的问题:

这是我的代码: –

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) {
    }
};

解决方法

使用ArrayAdapter并覆盖方法 – getDropDownView ..
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,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;
        }
    };

使用上面提到的代码并删除下拉列表中的默认值.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...