В соответствии с требованием у меня есть ListView
с каждой строкой, содержащей несколько TextView
s.Добавление и удаление текстовых полей в ListView динамически в Android
Я использую CustomAdapter
. В зависимости от данных (исходящих от сервера) я должен удалить около TextViews
и держать другие во время выполнения в каждой строке ListView
. Удаленный TextViews должен быть , указанный в следующей строке в зависимости от данных.
Я пробовал View.Gone
, но проблема все еще сохраняется.
Мой код:
public class CustomListViewFBOAdapter extends ArrayAdapter<XYZ> {
Context context;
List<XYZ> rowItem;
LinearLayout linearLayout;
TextView a,b,c,d;
Viewholder holder = null;
public CustomListViewFBOAdapter(Context context, int resource,
List<XYZ> objects) {
super(context, resource, objects);
this.context = context;
this.rowItem = objects;
}
private class Viewholder {
TextView aValue;
TextView bValue;
TextView cValue;
TextView dVAlue;
}
@Override
public int getCount() {
return rowItem.size();
}
@Override
public FBODetails getItem(int position) {
return rowItem.get(position);
}
@Override
public long getItemId(int position) {
return rowItem.indexOf(getItem(position));
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
XYZ item = (XYZ) getItem(position);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.row, null);
linearLayout= (LinearLayout)convertView.findViewById(R.id.xmllayout);
a = (TextView)convertView.findViewById(R.id.a);
b = (TextView)convertView.findViewById(R.id.b);
c = (TextView)convertView.findViewById(R.id.c);
d = (TextView)convertView.findViewById(R.id.d);
holder = new Viewholder();
holder.aValue= (TextView) convertView.findViewById(R.id.avalue);
holder.bValue= (TextView) convertView.findViewById(R.id.bValue);
holder.cvalue= (TextView) convertView.findViewById(R.id.cvalue);
holder.dvalue= (TextView) convertView.findViewById(R.id.dvalue);
convertView.setTag(holder);
} else {
holder = (Viewholder) convertView.getTag();
}
if(item.getA().equals("$ 0.00"))
{
if(holder.aValue.getVisibility() == View.VISIBLE && a.getVisibility() == View.VISIBLE)
{
a.setVisibility(View.GONE);
holder.aValue.setVisibility(View.GONE);
}
}
else
{
holder.aValue.setVisibility(View.VISIBLE);
a.setVisibility(View.VISIBLE);
holder.aValue.setText(item.getA());
}
if(item.getB().equals("$ 0.00"))
{
if(holder.bValue.getVisibility() == View.VISIBLE && b.getVisibility() == View.VISIBLE)
{
b.setVisibility(View.GONE);
holder.bValue.setVisibility(View.GONE);
}
}
else
{
holder.bValue.setVisibility(View.VISIBLE);
b.setVisibility(View.VISIBLE);
holder.bValue.setText(item.getB());
}
if(item.getC().equals("$ 0.00"))
{
if(holder.cValue.getVisibility() == View.VISIBLE && c.getVisibility() == View.VISIBLE)
{
c.setVisibility(View.GONE);
holder.cValue.setVisibility(View.GONE);
}
}
else
{
holder.cValue.setVisibility(View.VISIBLE);
c.setVisibility(View.VISIBLE);
holder.cValue.setText(item.getC());
}
if(item.getD().equals("$ 0.00"))
{
if(holder.dValue.getVisibility() == View.VISIBLE && d.getVisibility() == View.VISIBLE)
{
d.setVisibility(View.GONE);
holder.dValue.setVisibility(View.GONE);
}
}
else
{
holder.dValue.setVisibility(View.VISIBLE);
d.setVisibility(View.VISIBLE);
holder.dValue.setText(item.getD());
}
return convertView;
}
}
Спасибо за ваши ответы.
отправьте свой код «CustomAdapter». –