如何在Spinner Android中删除特定文本?

问题描述

我想在Spinner中删除特定的文本,我的代码看起来像下面的代码

    packSpinner = findViewById(R.id.packSpinner);
    String spinnerArray[] = new String[10];

    for(int i=0; i<8; i++){
      spinnerArray[i] = packArray[i] + mrpArray[i] + sellingPriceArray[i];
    }

    packSpinner.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,spinnerArray));

在上述来自服务器的代码产品中,我已经将数据提取到packArray,mrpArray和sellingPriceArray中,现在我要删除mrp文本。

解决方法

您可以使用StrikethroughSpan或仅设置textView.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);,但是对于这两者,您都必须具有TextView的访问权限,因此您无法通过默认ArrayAdapter来达到目的,旨在显示没有自定义效果的简单列表(最常见的用法)。您必须扩展它并覆盖getView方法。一些示例HEREHEREHERE

,

您可以使用

textview.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);

适配器的特定位置

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,R.layout.spinner_text,list) {
                @Override
                public boolean isEnabled(int position) {
                    if (position == 0) {

                        return false;
                    } else {
                       
                    }
                }

                @Override
                public View getDropDownView(int position,View convertView,ViewGroup parent) {
                    View view = super.getDropDownView(position,convertView,parent);
                    TextView textview = (TextView) view;


                    if (position == 0) {
                        textview.setPadding(0,0);
                        textview.setTextColor(ContextCompat.getColor(RegistrationActivity.this,R.color.textColor_gray));
                        textview.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
                    } else {
                        textview.setPadding((int) getResources().getDimension(R.dimen.paddingformleft),(int) getResources().getDimension(R.dimen.paddingform),(int) getResources().getDimension(R.dimen.paddingform));

                        textview.setTextColor(ContextCompat.getColor(RegistrationActivity.this,R.color.dark_light_txtColor));
                    }



                    return view;
                }
            };

            dataAdapter.setDropDownViewResource(R.layout.spinner_text);
            spinner.setAdapter(dataAdapter);