Java Android初学者:带有图像和复选框的列表视图

Java Android初学者:带有图像和复选框的列表视图,java,android,eclipse,android-layout,android-intent,Java,Android,Eclipse,Android Layout,Android Intent,我是一个初学者程序员,所以请容忍我。我已经能够创建一个包含图像的列表视图,我想我可以修改它来添加一个复选框。但是,此设置不起作用。关于如何修复代码以创建包含图像和复选框的listview,有什么建议吗 import java.util.ArrayList; import java.util.List; import java.util.Vector; import android.app.Activity; import android.app.ListActivity; import an

我是一个初学者程序员,所以请容忍我。我已经能够创建一个包含图像的列表视图,我想我可以修改它来添加一个复选框。但是,此设置不起作用。关于如何修复代码以创建包含图像和复选框的listview,有什么建议吗

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

import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ParseException;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class CheckboxList extends ListActivity{
        private LayoutInflater mInflater;
        private Vector<RowData> data;
        RowData rd;
        static CheckBox box0,box1,box2,box3;

        static final String[] title = new String[] {
                "Box 1", "Box 2",   

        "Box 3 ","Box 4"        };

        static final CheckBox[] boxes= new CheckBox[] {box0,box1,box2,box3};

        private Integer[] imgid = {
          R.drawable.magnum,R.drawable.mg,R.drawable.mk,
          R.drawable.mk46};

        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mInflater = (LayoutInflater) getSystemService(
        Activity.LAYOUT_INFLATER_SERVICE);
        data = new Vector<RowData>();
        for(int i=0;i<title.length;i++){

        try {
            rd = new RowData(i,title[i],boxes[i]);
            } catch (ParseException e) {
                e.printStackTrace();
           }
           data.add(rd);
        }
           CustomAdapter adapter = new CustomAdapter(this, R.layout.check_list,
                                             R.id.title, data);
           setListAdapter(adapter);
           getListView().setTextFilterEnabled(true);
        }
           public void onListItemClick(ListView parent, View v, int position,
                                                                        long id) {          

           Toast.makeText(getApplicationContext(), "You have selected "
                            +(position+1)+"th item",  Toast.LENGTH_SHORT).show();
        }
               private class RowData {
               protected int mId;
               protected String mTitle;
               protected CheckBox mCBox;
               RowData(int id,String title,CheckBox cbox){
               mId=id;
               mTitle = title;
               mCBox=cbox;
            }
               @Override
               public String toString() {
                       return mId+" "+mTitle+" "+mCBox;
               }
        }
          private class CustomAdapter extends ArrayAdapter<RowData> {

          public CustomAdapter(Context context, int resource,
                                int textViewResourceId, List<RowData> objects) {               

         super(context, resource, textViewResourceId, objects);
        }
              @Override
               public View getView(int position, View convertView, ViewGroup parent) {   

               ViewHolder holder = null;
               TextView title = null;
               CheckBox box = null;
               ImageView i11=null;
               RowData rowData= getItem(position);
               if(null == convertView){
                    convertView = mInflater.inflate(R.layout.check_list, null);
                    holder = new ViewHolder(convertView);
                    convertView.setTag(holder);
         }
                     holder = (ViewHolder) convertView.getTag();
                     title = holder.gettitle();
                     title.setText(rowData.mTitle);

                     box = holder.getcheckbox();
                     box.setChecked(false);                                                    

                     i11=holder.getImage();
                     i11.setImageResource(imgid[rowData.mId]);
                     return convertView;
        }
                    private class ViewHolder {
                    private View mRow;
                    private TextView title = null;
                    private CheckBox cbox = null;
                    private ImageView i11=null; 

                    public ViewHolder(View row) {
                    mRow = row;
         }
                 public TextView gettitle() {
                     if(null == title){
                         title = (TextView) mRow.findViewById(R.id.title);
                        }
                    return title;
                 }     

                 public CheckBox getcheckbox() {
                     if(null == cbox){
                          cbox = (CheckBox) mRow.findViewById(R.id.checkBox);
                            }
                   return cbox;
                 }
                public ImageView getImage() {
                     if(null == i11){
                          i11 = (ImageView) mRow.findViewById(R.id.img);
                                              }
                        return i11;
                }
             }
           } }
import java.util.ArrayList;
导入java.util.List;
导入java.util.Vector;
导入android.app.Activity;
导入android.app.ListActivity;
导入android.content.Context;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.net.ParseException;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.CheckBox;
导入android.widget.ImageView;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类复选框列表扩展了ListActivity{
私人停车场;
专用矢量数据;
罗维达路;;
静态复选框框0、框1、框2、框3;
静态最终字符串[]标题=新字符串[]{
“方框1”、“方框2”,
“方框3”、“方框4”};
静态最终复选框[]框=新复选框[]{box0,box1,box2,box3};
私有整数[]imgid={
R.drawable.magnum,R.drawable.mg,R.drawable.mk,
R.drawable.mk46};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mInflater=(LayoutInflater)getSystemService(
活动。布局(充气机和服务);
数据=新向量();

对于(inti=0;i请查看此链接。它可能会有帮助


查看此链接。它可能会有帮助