Benutzerdefinierte adapter getview wird nicht aufgerufen

Ich habe eine Benutzerdefinierte adapter mit einem ListFragment aber der Adapter getView() ist nicht immer genannt zu allen.

Dies ist, wie der adapter aussieht -

public class ModuleListItemAdapter extends BaseAdapter {

    List<ModuleItem> list;
    Context context;
    Module mod;

    public ModuleListItemAdapter() {
        super();
        //TODO Auto-generated constructor stub
    }

    public ModuleListItemAdapter(Context context, List<ModuleItem> list, Module mod) {
        super();
        this.list = list;
        this.context = context;
        this.mod = mod;
        //TODO Auto-generated constructor stub
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        RelativeLayout rl = (RelativeLayout) inflater.inflate(R.layout.moduleitem, null);
        GenerateModuleItemView gmiv = new GenerateModuleItemView(context);
        rl.addView(gmiv.itemDispView(mod.getFields(), list.get(position)));
        return rl;
    }

    public void setValue(List<ModuleItem> l) {
        this.list = l;
        notifyDataSetChanged();
    }

    public void addValue(ModuleItem item) {
        this.list.add(item);
        notifyDataSetChanged();
    }

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

    @Override
    public Object 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;
    }
}

- Und den Fragment -

public class ModuleItemListFragment extends ListFragment {

    List<ModuleItem> list;
    Module mod;

    public ModuleItemListFragment() {
        super();
        //TODO Auto-generated constructor stub
    }

    public ModuleItemListFragment(List<ModuleItem> list, Module mod) {
        super();
        this.list = list;
        this.mod = mod;
        //TODO Auto-generated constructor stub
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //TODO Auto-generated method stub
        return inflater.inflate(R.layout.list, container, false);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        ModuleListItemAdapter adapter = new ModuleListItemAdapter(getActivity(), list, mod);
        setListAdapter(adapter);
    }
}

Und dies ist, wie mein layout aussieht -

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@android:id/list"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:divider="#000000"
          android:dividerHeight="1dip" />

Ich weiß nicht, was das problem hier ist.

@Override public int getCount() { return list.size(); } . Nutzen Sie bitte google bevor du eine Frage stellst.
Als Luksprog sagte, Sie brauchen, um etwas hinzuzufügen, um getCount. Es geht nicht, zu versuchen, und erstellen Sie alle Ansichten, wenn es denkt, du willst 0.
Bist du sicher, dass deine "Liste" ist nicht leer?

InformationsquelleAutor Akilan | 2013-04-27

Schreibe einen Kommentar