У меня есть список, содержащий строки строк изображения и две кнопки. список загрузок из JSON. И я пытаюсь скрыть кнопку в строке, которую я нажал.Android Listview OnClickListener
Я попробовал его, вызвав кнопку onclicklistener в GetView из BaseAdapter
Проблема
Когда я нажимаю на кнопку в строке. кнопки некоторых других строк скрываются. Я не вижу, чтобы кнопка текущей строки была скрыта.
сообщение Тост показывает правильный текст кнопки, которые я щелкая, как показано в коде ниже
BaseAdapter/GetView
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
newsItem = listData.get(position);
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.home_single_image, null);
}
holder.caption1View = (Button) convertView.findViewById(R.id.btnpos);
holder.caption1View.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
HomeListItem newsItem1 = listData.get(position);
Toast.makeText(c,newsItem1.getCaption1(),Toast.LENGTH_LONG).show();// shows the correct position button text
holder.caption1View.setVisibility(View.GONE);
}
});
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
}
return convertView;
}
Вы не инициализирует 'holder' при первом использовании. –
Я не понял? он инициализирован – Naz141
Я не думаю, что вы вполне понимаете, что такое ViewHolder или как его использовать. Если вы используете ViewHolder, это должен быть отдельный класс, который * содержит представления * каждого элемента списка, который вы создаете. Вы определяете 'onClick()' внутри этого класса, чтобы каждый объект, созданный из класса, имел свои собственные обратные вызовы onClick. – NoChinDeluxe