话不多说直接 在代码里 注释:
注意:1,在BaseAdapter中是代码自动生成的无须手写。
2,在这里This换成当前上下文对象parent.getContext(),
@Override //看这里的标志。
public View getView(final int position, View convertView, final ViewGroup parent) {
if (convertView == null) {//这里很简单,就是判断View是否为空
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_pic, null);//以及View中所使用的布局文件。
holder = new viewHolder(convertView);
convertView.setTag(holder);
}else {
holder = (viewHolder) convertView.getTag();
}
Glide.with(parent.getContext()) //这里用到了网络图片缓存
.load(data.get(position).getPicUrl())
.placeholder(R.mipmap.ic_launcher)
.error(R.mipmap.ic_launcher_round)
.into(holder.img_pic);
holder.tv_pic.setText(data.get(position).getTitle());//这里是对应显示的东西。
convertView.setOnLongClickListener(new View.OnLongClickListener() { //这里就是长按操作
@Override
public boolean onLongClick(View v) {
new AlertDialog.Builder(parent.getContext()) //这里我用到了Dialog,方便我们确定收藏与取消
.setTitle("收藏")
.setMessage("是否收藏?")
.setPositiveButton("收藏", new DialogInterface.OnClickListener() { //确认收藏操作
@Override
public void onClick(DialogInterface dialog, int which) {
Account account = BmobUser.getCurrentUser(BaseApplication.getInstance(),Account.class);//我们收藏肯定是必须登陆后才可以收藏内容,否则不能收藏,跳转页面,直接送你去登陆或者注册。
if(account != null) {//这里加了一个判断
CollectionBean collectionBean = new CollectionBean();
collectionBean.setPicUrl(data.get(position).getPicUrl());
collectionBean.setuId(account.getObjectId());
collectionBean.setUrl(data.get(position).getUrl());
collectionBean.setTitle(data.get(position).getTitle());
collectionBean.setType(Constant.COLLECTION_TYPE_PIC);//这里根据自己的 Bean来设置
collectionBean.save(parent.getContext(), new SaveListener() {
@Override
public void onSuccess() {
Toast.makeText(parent.getContext(), "收藏成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int i, String s) {
Toast.makeText(parent.getContext(), "收藏失败", Toast.LENGTH_SHORT).show();
}
});
}
}
})
.setNegativeButton("取消",null)
.create()
.show();
return false;
}
});
return convertView;
}
代码只供学习,谢谢,有什么不足与错误,请大牛指点。