我有一个列表视图,我必须在其中动态地将数据添加到 linearLayout ,因为它不需要每一行都有相同数量的数据。
为此,我在 LiveView 适配器中将 textView 动态添加到线性布局。现在在滚动 textview 被 countinued 添加!任何想法如何解决这个问题???
这就是我正在做的事情。
static class ViewHolder
{
TextView itemName , itemQuantity , itemTotalPrice , attrKey , attrValue;
CheckBox deleteCheckbox;
ImageButton nextArrow;
LinearLayout linearLayout , attrHolder;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if(convertView == null)
{
convertView = mLayoutInflator.inflate(R.layout.basket_list,null);
holder = new ViewHolder();
holder.itemName = (TextView) convertView.findViewById(R.id.basket_list_item_name);
holder.itemQuantity = (TextView) convertView.findViewById(R.id.basket_list_item_number);
holder.itemTotalPrice = (TextView) convertView.findViewById(R.id.basket_list_total_amount);
holder.nextArrow = (ImageButton) convertView.findViewById(R.id.basket_list_next_arraow);
holder.deleteCheckbox = (CheckBox) convertView.findViewById(R.id.basket_list_checkbox);
holder.linearLayout = (LinearLayout)convertView.findViewById(R.id.basket_list_atributes);
convertView.setTag(holder);
}else
holder = (ViewHolder) convertView.getTag();
attributes = items.get(position).getAttributeVOs();
holder.itemName.setText(items.get(position).getItemName());
holder.itemQuantity.setText("x"+items.get(position).getItemQuantity());
holder.itemTotalPrice.setText("R "+items.get(position).getItemTotalCost());
if(CheckListActivity.flag)
holder.deleteCheckbox.setVisibility(View.VISIBLE);
else
holder.deleteCheckbox.setVisibility(View.GONE);
holder.deleteCheckbox.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
CheckBox cb = (CheckBox) v;
System.out.println("CHECKED");
if(cb.isChecked())
holder.deleteCheckbox.setButtonDrawable(R.drawable.checkarrow);
else
holder.deleteCheckbox.setButtonDrawable(R.drawable.unchecked);
checkedArray.put(position, cb.isChecked());
}
});
holder.nextArrow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//To next activity
}
});
for(int i = 0 ; i < attributes.size() ; i ++)
{
LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
holder.attrHolder = new LinearLayout(context);
holder.attrHolder.setOrientation(LinearLayout.HORIZONTAL);
holder.attrHolder.setLayoutParams(lparams);
holder.attrKey = new TextView(context);
holder.attrKey.setLayoutParams(lparams);
holder.attrKey.setText(attributes.get(i).getKey());
holder.attrValue = new TextView(context);
holder.attrValue.setLayoutParams(lparams);
holder.attrValue.setText(attributes.get(i).getValues().toString());
holder.attrHolder.addView(holder.attrKey);
holder.attrHolder.addView(holder.attrValue);
}
holder.linearLayout.addView(holder.attrHolder);
return convertView;
}