如何在 Spinner android 中删除特定文本?
How to strike specific text in 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
方法。一些例子 HERE, HERE and
你可以使用
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,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), (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);
我想在 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
方法。一些例子 HERE, HERE and
你可以使用
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,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), (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);