我目前正在开发一个需要ListView
自定义 NumberPickers 的活动。我按照这里的建议创建了数字选择器。
我面临的问题非常令人沮丧;当我单击数字选择器的 + 按钮时,文本视图一直显示 0。我已经尝试了所有这些建议,但没有任何改变。
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View vi = convertView;
//ViewHolder holder = new ViewHolder();
if(vi == null)
{
holder = new ViewHolder();
vi = inflater.inflate(R.layout.materialdialogcontent, null);
//Initialize Buttons and TextViews.
holder.num.setText("0");
holder.add.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
counter++;
holder.num.setText("" + counter);
}
});
holder.sub.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
counter--;
holder.num.setText("" + counter);
}
});
//holder.pk = (NumberPicker)vi.findViewById(R.id.npMaterialAmount);
vi.setTag(holder);
}
else
{
holder = (ViewHolder)vi.getTag();
}
holder.txt.setText(data.get(position).getName());
//holder.pk.setMaxValue(20);
//holder.pk.setMinValue(0);
return vi;
}
public static class ViewHolder
{
TextView txt;
Button add;
Button sub;
TextView num;
//NumberPicker pk;
}
上面的代码在我的ListView
适配器中找到。
以下是我已经尝试过的:
当我调试上面的代码时,计数器增加,并且调试器变量显示TextView
's 的文本实际上被设置为计数器中存在的数字,但是显示的数字仍然是 0。
我也尝试将 an 设置OnItemClickListener()
为ListView
,但仍然没有任何反应。然后,我从 ListView 适配器类中删除了Button
单击侦听器,并将它们放在 ListView 的onItemClickListener()
. 但是,在调试时,Button
调试器会跳过单击侦听器。
你有什么其他的建议?
我将不胜感激所有可能的帮助。
更新:
holder.add.setTag(position);
holder.add.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
int position = (Integer)v.getTag();
int temp = numPickerValues.get(position);
temp += 1;
numPickerValues.set(position, temp);
notifyDataSetChanged();
}
});
holder.num.setText(String.valueOf(numPickerValues.get(position)));
return convertView;