У меня есть пользовательское listview, у которого есть ImageView слева, а затем EditText, а справа у меня есть другой ImageView, который, во-первых, не имеет источник.Как изменить ресурс изображения элемента, нажатого в виде списка
Тогда у меня есть onItemClickListener в этом представлении. Я хотел бы изменить источник ImageView справа (тот, который изначально не имеет никакого источника) на клике элемента.
Для этого я реализовал этот код:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ImageView icone2 = (ImageView) view.findViewById(R.id.icone2_lugar);
icone2.setImageResource(R.drawable.flag_origem);
}
ImageView в succefully вставлен на пункт щелкнул. Однако, когда я просматриваю список, я понял, что все остальные элементы, которые находились на том же месте, что и один, щелкнули, прежде чем прокручивать список, также изменили ресурс изображения.
Почему это происходит? Я предполагаю, что Android загружает новые представления, прокручивая список, а не загружая все представления элементов в тот же момент, поэтому, я думаю, я не могу изменить ресурс элемента в списке, взяв параметр View onItemClick.
Итак, как я могу изменить ресурс элемента clicked в виде списка?
EDIT:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View linha = convertView;
ArmazenadorLugar armazenador = null;
if (linha == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
linha = inflater.inflate(R.layout.linha_lugar, parent, false);
armazenador = new ArmazenadorLugar(linha);
linha.setTag(armazenador);
} else {
armazenador = (ArmazenadorLugar) linha.getTag();
}
armazenador.popularFormulario(mListaLugares.get(position), mContext);
return linha;
}
public LugarAndroid getItem(int position) {
return mListaLugares.get(position);
}
Как вы узнали, виды переработаны в ListViews. Я бы сделал свой собственный адаптер и переопределил getView() и поместил туда логику выбора. –
Фактически этот список уже находится в адаптере, и у меня также есть метод getView. Могли бы написать кусок кода, чтобы просто показать, что вы только что сказали? параметры ta должны быть переданы getView, это int position, View convertView, родитель ViewGroup –
Что произойдет, если вы снова нажмете элемент? Если значок изменится или он останется установленным? –