我在Android中很新。我遇到了一个问题,我有一个适配器。我必须以相反的顺序填充我的列表,但是当位置没有反转为listItems时。 这是我的代码
public PageListAdapter(Context context) {
super();
this.context = context;
arr = new ArrayList<String>();
// FilesInFolder = GetFiles("/sdcard/Download");
filePath = Environment.getExternalStorageDirectory() + "/openedpages/";
file = new File(filePath);
if (file.exists()) {
filenew = file.listFiles();
for (int i = 0; i < file.listFiles().length; i++) {
arr.add(filenew[i].getName());
}
}
Collections.reverse(arr);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowview = inflater
.inflate(R.layout.listelement, parent, false);
pagename = (TextView) rowview.findViewById(R.id.listitem);
//
pagename.setText(arr.get(position));
arrnum.add(position);
return rowview;
} else
return convertView;
}
在这里我颠倒了我的arraylist ..但是listitems的位置是相反的顺序。新添加的项目没有获得位置0。 请帮帮我。谢谢。
答案 0 :(得分:0)
首先,您不需要额外的列表arrpostion
。您的arr
已经按相反的顺序保留了项目。
只需设置文字:pagename.setText(arr.get(position))
;
第二个,您必须使用正确的数据填充回收的convertView
(与创建新数据时的操作类似),当前返回时:
} else
return convertView;
修好后,您的列表视图会显示您想要的内容。