Я использую ListFragment с пользовательским адаптером.Android Listview сбрасывает изменения при прокрутке
У меня есть адаптер textview
и скрыть imageview
со стрелкой. Когда пользователь выбирает элемент, появляются стрелки и меняется цвет фона. Но, когда пользователь просматривает список, все изменения возвращаются к умолчанию.
Что я должен сделать, чтобы исправить изменения?
EDIT:
мой адаптер класс ..
public class PropriedadeAdapter extends BaseAdapter {
private Context context;
private List<Propriedades> prop;
public PropriedadeAdapter(Context context, List<Propriedades> prop) {
this.context = context;
this.prop = prop;
}
public int getCount() {
return prop.size();
}
public Object getItem(int position) {
return prop.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// Recupera o produto da posição atual
Propriedades p = prop.get(position);
// Layout XML
int arquivoLayout = R.layout.lista_prop;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(arquivoLayout, null);
// Atualiza o valor do Text para o nome do produto
TextView textNome = (TextView) v.findViewById(R.id.nome);
textNome.setText(p.getNome());
return v;
}
}
мой Fragment класс ..
public class frag_lista extends ListFragment{
ImageView ultimoItem = null;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayList<Propriedades> props = new ArrayList<Propriedades>();
for(int i = 0; i <50; i++)
{
Propriedades prop = new Propriedades();
prop.setNome("FRUTA "+i);
props.add(prop);
}
setListAdapter(new PropriedadeAdapter(this.getActivity(),props));
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
ImageView seta = (ImageView)v.findViewById(R.id.imgSeta);
seta.setVisibility(0);
LinearLayout linha = (LinearLayout)v.findViewById(R.id.linha);
linha.setBackgroundColor(Color.GRAY);
if(ultimoItem != null)
{
ultimoItem.setVisibility(4);
}
ultimoItem = seta;
}
}
, что я должен сделать, чтобы persiste изменения метода onListItemClick ????
Когда вы говорите «изменения возвращаются к умолчанию», это только для отображаемых представлений (т. Е. Видов, которые в настоящее время не отображаются при запуске прокрутки)? – Sly
i.e. У моего списка есть 120 itens (по умолчанию state = bgcolor green и no arrow). Если я выберу первый (bgcolor = красный со стрелкой), то прокрутите до последнего, когда я вернусь к первому, все изменения вернутся в исходное состояние. – JannGabriel
Я редактирую свой ответ – Sly