自定义列表适配器仅返回11项

时间:2014-07-16 13:07:57

标签: android arrays listview adapter android-arrayadapter

我有ListView显示目录中的所有图像。我有自定义适配器,它显示所有列表项,但图像视图是错误的 - 前11个图像显示正确,其他图像将显示像前11个相同的序列。据我所知,问题出在我的适配器的data [position]中,因为数据数组是正确的,getView中的data [position]只显示了11个项目。

这是我的onCreate:

    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.list);

                String path = Environment.getExternalStorageDirectory().toString()+"/MANUAL/workflow";
                Log.d("Files", "Path: " + path);
                File f = new File(path);
                File file[] = f.listFiles();
                Log.d("Files", "Size: "+ file.length);

                for (int i=0; i < file.length; i++) {
                        array.add(file[i].getName());
                }

                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");
                    Log.d("Files", "ARRAY ARRAY: "+ array);
                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");

                    String[] place = array.toArray(new String[array.size()]);
                    Arrays.sort(place);
                    actions.Settings("sequence.txt", place);

                    listview = (ListView) findViewById(R.id.listview);
                    listview.setAdapter(new yourAdapter(this, place));
                    getIntent().setAction("Already created");

                    DisplayMetrics dm = new DisplayMetrics();
                    getWindowManager().getDefaultDisplay().getMetrics(dm);
                    width = dm.widthPixels;
                    height = dm.heightPixels;

                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");
                    for (int i=0; i<place.length; i++){
                        Log.d("Files", "ARRAY PLACE: "+ place[i]);
                    }
                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");
                    Log.d("Files", "###############################################");

                }

和我的自定义适配器:

class yourAdapter extends BaseAdapter {

    public Matrix matrix() {
            Matrix matrix = new Matrix();
            matrix.postScale(1f, 1f);
            return matrix;
        }


        //ADAPTER
        Context context;
        String[] data;
        private static LayoutInflater inflater = null;

        public yourAdapter(Context context, String[] data) {
            // TODO Auto-generated constructor stub
            this.context = context;
            this.data = data;
            inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            Log.d("Files", "###############################################");
            Log.d("Files", "###############################################");
            Log.d("Files", "###############################################");
            for (int i=0; i<data.length; i++){
                Log.d("Files", "ARRAY DATA: "+ data[i]);
            }
            Log.d("Files", "###############################################");
            Log.d("Files", "###############################################");
            Log.d("Files", "###############################################");
        }

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

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

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

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

            // TODO Auto-generated method stub
            View vi = convertView;
            //if (vi == null) {
                vi = inflater.inflate(R.layout.row, null);
                TextView text = (TextView) vi.findViewById(R.id.text);
                text.setText(data[position]);


                Log.d("Files", "###############################################");
                Log.d("Files", "ARRAY DATA POSITION: "+ data[position]);
                Log.d("Files", "###############################################");


                Button btnDraw = (Button) vi.findViewById(R.id.buttonDraw);
                btnDraw.setText("draw");
                btnDraw.setContentDescription(data[position]);

                Button btnEdit = (Button) vi.findViewById(R.id.buttonEdit);
                btnEdit.setText("edit");
                btnEdit.setContentDescription(data[position]);  

                Button btnDel = (Button) vi.findViewById(R.id.buttonDel);
                btnDel.setText("delete");
                btnDel.setContentDescription(data[position]);   

                //Log.d("Files", "DATA: " + data[position]);
                try{
                    ImageView mImg = (ImageView) vi.findViewById(R.id.imageView);
                    BitmapTask btmt = new BitmapTask();
                    btmt.setImageView(mImg);
                    btmt.execute(data[position]);
                    //mImg.setImageBitmap(btmt.get());
                } catch (Exception e){
                    e.printStackTrace();
                }

            //}
            return vi;
        }

在我的日志中我有这个:

07-16 17:03:29.956  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:03:29.956  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:03:29.956  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:03:29.956  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY ARRAY: [img1405508897.png, img1405508900.png, img1405508904.png, img1405508908.png, img1405508911.png, img1405508912.png, img1405508914.png, img1405508916.png, img1405508918.png, img1405508942.png, img1405508958.png, img1405508961.png, img1405508963.png, img1405508972.png, img1405508977.png, img1405508981.png, img1405508986.png, img1405509047.png, img1405509084.png, img1405509096.png, img1405509099.png, img1405509103.png, img1405509108.png, img1405509113.png, img1405509122.png, img1405509128.png, img1405509152.png, img1405509156.png, img1405509168.png, img1405509203.png]
07-16 17:03:29.956  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:03:29.956  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:03:29.956  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################

和其他日志中的数据相同,但在DATA POSITION我只有11项:

07-16 17:05:31.612  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.612  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508897.png
07-16 17:05:31.612  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.617  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.617  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508900.png
07-16 17:05:31.617  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.627  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.627  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508904.png
07-16 17:05:31.627  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.642    3056-3333/? D/lights﹕ button : 0 -
07-16 17:05:31.647  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.647  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508908.png
07-16 17:05:31.647  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.652  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.652  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508911.png
07-16 17:05:31.652  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.667  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.667  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508912.png
07-16 17:05:31.667  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.672  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.672  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508914.png
07-16 17:05:31.672  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.677  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.677  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508916.png
07-16 17:05:31.677  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.682  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.682  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508918.png
07-16 17:05:31.682  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.692  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.692  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508942.png
07-16 17:05:31.692  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.697  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################
07-16 17:05:31.697  26363-26363/com.mycompany.overtest D/Files﹕ ARRAY DATA: img1405508958.png
07-16 17:05:31.697  26363-26363/com.mycompany.overtest D/Files﹕ ###############################################

有人可以提出建议吗?

1 个答案:

答案 0 :(得分:0)

使用 -

 String[] place = array.toArray();