我有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﹕ ###############################################
有人可以提出建议吗?
答案 0 :(得分:0)
使用 -
String[] place = array.toArray();