如何在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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...