不调用自定义Arrayadapter getview()

时间:2013-12-06 10:20:20

标签: android

自定义arrayadapter中的getview()方法没有调用,我搜索了更多但我无法找到解决方案,请给我一些建议。我想我做了almoost所有的可能性方法但我无法修复它

这是我的活动

public ListView listView;
TwiterlistAdapter adapter;
List<ProfileconnectedObject> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.wood_twitlist);

    listView=(ListView) findViewById(R.id.listView1);

    list=new ArrayList<ProfileconnectedObject>();

    adapter=new TwiterlistAdapter(Wood_Twiter_Feed_list.this, R.layout.wood_twititem, list);
    listView.setAdapter(adapter);
}

}

这是我的适配器

public class TwiterlistAdapter extends ArrayAdapter<ProfileconnectedObject>{
public Context context;
List<ProfileconnectedObject> items;
ProfileconnectedObject object;
private RadioButton mCurrentlyCheckedRB;
private boolean userSelected = false;
private int mResourceId = 0;
private RadioButton mSelectedRB;
private int mSelectedPosition = -1;
int row;

public TwiterlistAdapter(Context context, int resource,
        List<ProfileconnectedObject> objects) {
    super(context, resource, objects);
    // TODO Auto-generated constructor stub
    this.row=resource;
    this.context=context;
    this.items=objects;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    System.out.println("items.size() "+items.size());
    return this.items.size();
}
public Context getContext() {
    return context;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub

    ViewHolder holder = new ViewHolder();
    View hView = convertView;
    if (hView == null) {

        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        convertView = inflater.inflate(row, null);

        holder.pic = (ImageView) hView
                .findViewById(R.id.profile_pic);
        holder.name = (TextView) hView.findViewById(R.id.name);
        holder.radiobt = (RadioButton) hView.findViewById(R.id.radio);
        hView.setTag(holder);
    }
    else {
        holder = (ViewHolder) hView.getTag();
    }

    object=items.get(position);


    if (position == getCount() - 1 && userSelected == false) {
        holder.radiobt.setChecked(true);
        mCurrentlyCheckedRB = holder.radiobt;
    } else {
        holder.radiobt.setChecked(false);
    }


    holder.radiobt.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            if((position != mSelectedPosition && mSelectedRB != null)){
                mSelectedRB.setChecked(false);
            }

            mSelectedPosition = position;
            mSelectedRB = (RadioButton)v;
        }
    });

    if(mSelectedPosition != position){
        holder.radiobt.setChecked(false);
    }else{
        holder.radiobt.setChecked(true);
        if(mSelectedRB != null && holder.radiobt != mSelectedRB){
            mSelectedRB = holder.radiobt;
        }
    }

   holder.name.setText(object.getP_profilename());
    return hView;

}

public class ViewHolder {
    TextView name;
    RadioButton radiobt;
    ImageView pic;
}

}

3 个答案:

答案 0 :(得分:3)

您的列表对象为空 list = new ArrayList(); 。因此不会调用getView()方法。在该arraylist中添加一些值并尝试。您需要在这些语句之间将值放在arraylist中。

listView=(ListView) findViewById(R.id.listView1);

list=new ArrayList<ProfileconnectedObject>();
/* For Example */
list.add(new ProfileconnectedObject());

adapter=new TwiterlistAdapter(Wood_Twiter_Feed_list.this, R.layout.wood_twititem, list);
listView.setAdapter(adapter);

尝试将一些对象值添加到arraylist中并再次检查。

答案 1 :(得分:0)

如果您没有遗漏任何内容,则列表为空。检查getCount()中列表的大小,我很确定它是0.

答案 2 :(得分:0)

    Try Like this :

    listView = (ListView) rootView.findViewById(R.id.Listviewname);
    -----------------------------------------------------------------------

    AssignmentDatabaseConnector dao = new AssignmentDatabaseConnector(getActivity());
            List<AssignmentPojo> assignments= dao.getAllAssignmentList();
            assignmentCustomAdapter = new AssignmentCustomAdapter(getActivity(),
                    assignments, this);
            listView.setAdapter(assignmentCustomAdapter);
    ---------------------------------------------------------------------------
    ##AssignmentDatabaseConnector :

    public List<AssignmentPojo> getAllAssignmentList() {
            open();
            List<AssignmentPojo> assignmentList = new ArrayList<AssignmentPojo>();
            // Select All Query
            String selectQuery = "SELECT  * FROM Assignment";

            Cursor cursor = database.rawQuery(selectQuery, null);

            // looping through all rows and adding to list
            if (cursor.moveToFirst()) {
                do {
                    AssignmentPojo assignment = new AssignmentPojo();
                    assignment.setAssign_Id(cursor.getString(0));
                    assignment.setAssign_Course(cursor.getString(1));

                    // Adding contact to list
                    assignmentList.add(assignment);
                } while (cursor.moveToNext());
            }
            cursor.close();
            database.close();
            // return contact list
            return assignmentList;
        }
    ---------------------------------------------------------------------------------------
#AssignmentCustomAdapter.java :

    import java.util.ArrayList;
    import java.util.List;

    import android.content.Context;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.CheckBox;
    import android.widget.TextView;
    import android.widget.Toast;

    import com.xyz.R;
    import com.xyz.pojo.AssignmentPojo;

    public class AssignmentCustomAdapter extends BaseAdapter {

        private TextView mAssignTitle, mAssignCourse, mAssignAvDate, mAssignAvTime,
                mAssignClDate, mAssignClTime;
        private final Context context;
        List<AssignmentPojo> assignments;
        private ViewAllAssignments viewAllAssignments;




        AssignmentCustomAdapter(Context context, List<AssignmentPojo> assignments2,
                ViewAllAssignments viewAllAssignments) {
            this.context = context;
            this.assignments = assignments2;
            this.viewAllAssignments = viewAllAssignments;


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

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return position;
        }

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

            return 0;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            View rowView = convertView;
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            if (convertView == null) {
                rowView = inflater.inflate(R.layout.assignments_viewlists, parent,
                        false);
            }

            mAssignCourse = (TextView) rowView.findViewById(R.id.Assign_Course);
            mAssignCourse.setText(assignments.get(position).getAssign_Course());

            mAssignTitle = (TextView) rowView.findViewById(R.id.Assign_Title);


            SingleChk = (CheckBox) rowView.findViewById(R.id.SingleChk);

            checkedvalue.clear();


            rowView.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    // Toast 
                }
            });



            return rowView;
        }

    }
相关问题