Metinle eşleştirilen bir düğme listesi oluşturmaya çalışıyorum. Listede bir düğme tıklandığında, ilişkili metin görünümünde tamsayı değerini artırmak istiyorum. Planım aşağıdaki kodu kullanmaktı, ancak viewHolder
kullanarak OnClickListener
içinde bir hata yaşıyorum çünkü viewHolder
son değil ve onClick
içinde işlemek için bu olamaz. İlişkili metin değerini nasıl değiştirebilirim?ListView with Button, ViewHolder'ı OnClick içinde kullanma
public View getView(final int position, View convertView, ViewGroup parent){
ViewHolder viewHolder = null;
if (convertView == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView = inflater.inflate(R.layout.row, null);
viewHolder = new ViewHolder();
viewHolder.text = (TextView) convertView.findViewById(R.id.playerScore);
viewHolder.button = (Button) convertView.findViewById(R.id.playerButton);
viewHolder.button.setOnClickListener(new View.OnClickListener() {
protected String scoreToSet;
@Override
public void onClick(View v) {
viewHolder.text.setText(Integer.toString(modelList.get(position).getScore() + 1)); //Error is occurring here
}
});
convertView.setTag(viewHolder);
}
else{
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.button.setText(modelList.get(position).getPlayer());
}
return convertView;
}
Yardımın için teşekkürler!
public View getView(final int position, View convertView, ViewGroup parent){
ViewHolder viewHolder = null;
if (convertView == null) {
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView = inflater.inflate(R.layout.row, null);
viewHolder = new ViewHolder();
viewHolder.text = (TextView) convertView.findViewById(R.id.playerScore);
viewHolder.button = (Button) convertView.findViewById(R.id.playerButton);
convertView.setTag(viewHolder);
}
else{
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.button.setText(modelList.get(position).getPlayer());
viewHolder.button.setOnClickListener(new View.OnClickListener() {
protected String scoreToSet;
@Override
public void onClick(View v) {
setValue(position);
}
});
return convertView;
}
setValue()
beyan - - if-else blokları Dışarıya görüşlerinizi dinleyicileri veya set değerleri eklemelisiniz