Я не уверен на 100%, если это безопасный и хороший способ, но вы можете удалить значок, если вы расширите класс EditTextPreference следующим образом:
Перекрыв метод getView()
, вы можете изменитьрисуется в списке.Я использую исходный вид и ищу его по всем изображениям (рекурсивно) и меняю их visibility
на GONE
.
public class EditTextPreferenceNoImage extends EditTextPreference {
public EditTextPreferenceNoImage(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public EditTextPreferenceNoImage(Context context, AttributeSet attrs) {
super(context, attrs);
}
public EditTextPreferenceNoImage(Context context) {
super(context);
}
@Override
public View getView(View convertView, ViewGroup parent) {
View view = super.getView(convertView, parent);
changeImagesVisibility(view, View.GONE);
return view;
}
private void changeImagesVisibility(View view, int visibility) {
log.debug("child:" + view.getClass());
if (view instanceof ViewGroup) {
ViewGroup ll = (ViewGroup) view;
for (int i = 0; i < ll.getChildCount(); i++) {
changeImagesVisibilitz(ll.getChildAt(i), visibility);
}
} else if (view instanceof ImageView) {
log.debug("visiblitz : " + (visibility == View.VISIBLE));
ImageView image = (ImageView) view;
image.setVisibility(visibility);
}
}}