【发布时间】:2016-04-05 15:49:16
【问题描述】:
当我将图像从 SD 卡加载到 ListView 时,它开始滞后。我不能流畅地滚动。所以,我决定使用回收站视图,也许还有毕加索。我面临的唯一问题是,ListView 适配器无法与 RecyclerView 一起使用。
如何重写以下代码/适配器以使用 RecyclerView?
万事如意,新年快乐!
public class Saveditems extends BaseActivity {
ArrayList<String> f = new ArrayList<>();// list of file paths
File[] listFile;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.saveditems);
activateToolbarWithHomeEnabled().setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
getFromSdcard();
RecyclerView imagelist = (RecyclerView) findViewById(R.id.PhoneImageGrid);
ImageAdapter imageAdapter = new ImageAdapter();
imagelist.setAdapter(imageAdapter); //error
//image adapter cannot be applied to recycler view
}
public void getFromSdcard() {
File file = new File(Environment.getExternalStorageDirectory() + "/FlickrBrowser");
if (file.isDirectory()) {
listFile = file.listFiles();
for (File aListFile : listFile) {
f.add(aListFile.getAbsolutePath());
}
}
}
public class ImageAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public ImageAdapter() {
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return f.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@SuppressLint("InflateParams")
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(
R.layout.galleryitem, null);
holder.imageview = (ImageView) convertView.findViewById(R.id.thumbImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Bitmap myBitmap = BitmapFactory.decodeFile(f.get(position));
holder.imageview.setImageBitmap(myBitmap);
return convertView;
}
}
class ViewHolder {
ImageView imageview;
}}
【问题讨论】:
标签: android android-listview adapter android-adapter android-recyclerview