Yoh_Asakura
@Yoh_Asakura
Программист

Как реализовать button onclick в listview android?

Всем привет. Возникла небольшая сложность с кастомным listview. В каждой строчке списка находится кнопка которая должна становиться невидимой когда на неё нажимают. Почему-то у меня при нажатии на любую кнопку скрывается именно последняя.

Вот код метода getView из моего адаптера
@Override public View getView(int position, View view, ViewGroup parent) {
		if (view == null) {
			view = LayoutInflater.from(context).inflate(R.layout.list_menu, parent, false);
			holder.btn1 = (Button)view.findViewById(R.id.button1);
			holder.btn1.setOnClickListener(this);
			view.setTag(holder);
			} else {
				holder = (ViewHolder) view.getTag();
			}
		Model item = (Model)getItem(position);
		---------------------------------------		
		return view; 
	}


Клик как вы понимаете обрабатываю через реализацию интерфейса onClickListener.
@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.button1:
			holder.btn1.setVisibility(View.INVISIBLE);
			break;
		default:
			break;
		}
		
	}
  • Вопрос задан
  • 1473 просмотра
Решения вопроса 2
@onepavel
Консультация и разработка мобильных приложений
public void onClick(View v)
Зачем вам View передают в методе ?
v.setVisibility(View.INVISIBLE);
Ответ написан
konstantin_berkow
@konstantin_berkow
Начинающий разработчик
Я предлагаю вам несколько поменять структуру, сделайте ViewHolder'y конструктор в котором этой кнопке, после того как будет выполнен findViewById, и поставьте в качестве обработчика onClick'a объект ViewHolder, таким образом у каждой вьюшки, будет отдельный обработчик.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы