Ошибки в настраиваемом представлении списка, в котором каждая строка состоит из двух текстовых представлений и флажка. - PullRequest
0 голосов
/ 02 апреля 2012

Я написал код, который извлекает данные с сервера и отображает их в виде простого списка, и он успешно работает, но когда я использую пользовательское представление списка, в котором каждая строка состоит из текстовых представлений и флажка, это не работает ..

это мои занятия:

public class ItemInList {
private String name;
private float Description;
private boolean selected;

public ItemInList(String name, float Description) {
    this.name = name;
    this.Description =Description;
    selected = false;
}

public String getName() {
    return name;
}

public float getDescription() {
    return Description;
}

public void setName(String name) {
    this.name = name;
}

public void setDescription(float Description) {
    this.Description = Description;
}

public boolean isSelected() {
    return selected;
}

public void setSelected(boolean selected) {
    this.selected = selected;
}

это адаптер класса

public class DataAdapter extends ArrayAdapter<ItemInList> {


public ArrayList<ItemInList> list;

public Activity context;
public LayoutInflater inflater;

public DataAdapter(Activity context,int x,ArrayList<ItemInList> list) {
    super(context, 0, list);
    this.context = context;
    this.list = list;
    this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

static class ViewHolder {
    protected TextView name,Description;
    protected CheckBox checkbox;
}

public int getCount() {
    // TODO Auto-generated method stub
    return list.size();
}

@Override
public ItemInList getItem(int position) {
    // TODO Auto-generated method stub
    return list.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;



    if (convertView == null) {

         holder = new ViewHolder();
            convertView = inflater.inflate(R.layout.row1, null);


        holder.name = (TextView) convertView.findViewById(R.id.food_title);
        holder.name.setTextColor(Color.BLACK);

        holder.Description = (TextView) convertView.findViewById(R.id.food_description);
        holder.Description.setTextColor(Color.GRAY);

        holder.checkbox = (CheckBox) convertView.findViewById(R.id.add_food_item);
    //viewHolder.checkbox
                //.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    //@Override
                    //public void onCheckedChanged(CompoundButton buttonView,
                            //boolean isChecked) {
                        //ItemInList element = (ItemInList) viewHolder.checkbox.getTag();
                        //element.setSelected(buttonView.isChecked());
                        //System.out.println("Checked : " + element.getName());
                    //}
                //});

         convertView.setTag(holder);


    } else {
         holder=(ViewHolder)convertView.getTag();

            ItemInList bean = (ItemInList) list.get(position);

            holder.name.setText( bean.getName());
            holder.Description.setText( bean.getDescription()+"");
            holder.checkbox.setChecked( bean.isSelected());

              return convertView;
    }



    holder.name.setText(list.get(position).getName());
    holder.Description.setText(list.get(position).getDescription()+"");
    holder.checkbox.setChecked(list.get(position).isSelected());

      return convertView;
}

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Вы не инициируете свой

ItemInList item;

перед установкой значений в doInBackground ()

item.setName(foodName);
//...
0 голосов
/ 02 апреля 2012

Работает ли это, если вы удалите «return null» из LoadData.doInBackground ()?В конце концов, это функция void, которая ничего не должна возвращать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...