我想在同一个地方继续观看我的项目,当我将新项目添加到列表项目时,我该怎么办?
我正在使用firebase,但这不是问题。
这里,我想看的项目
这里,发送给我的新项目
//这样我从MainClass
添加我的项目 if (o instanceof Post) {
posts.add((Post) o);
listaFeed.notifyDataSetChanged();
}
public class ListaFeed extends BaseAdapter {
private ArrayList<Post> posts;
private Context context;
public ListaFeed(ArrayList<Post> posts, Context context) {
this.posts = posts;
this.context = context;
}
@Override
public int getCount() {
return posts.size();
}
@Override
public Object getItem(int position) {
return posts.get(position-getCount()-1);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView==null){
convertView = LayoutInflater.from(this.context).inflate(R.layout.card_feed, null);}
Post post = (Post) getItem(position);
ImageView foto = convertView.findViewById(R.id.iv_foto);
TextView titulo = convertView.findViewById(R.id.tv_titulo);
TextView autor = convertView.findViewById(R.id.tv_autor);
TextView modo = convertView.findViewById(R.id.tv_modo);
Picasso.with(context).load(post.getFoto()).into(foto);
titulo.setText(post.getTitulo());
autor.setText(post.getAutor());
modo.setText(post.getModo());
return convertView;
}
}
答案 0 :(得分:0)
如果您正在使用数组,则修复第0个索引上的特定项目位置,并添加具有相应索引的所有项目。
答案 1 :(得分:0)
如果您想将旧项目保留在第一个位置(这就是我理解问题的方式),那么您只需要将新项目添加到正确的位置即可。索引应为上一项的1 +位置。
另外,我建议您使用RecyclerView而不是ListView以获得更好的性能。使用notifyItemInserted()而不是notifyDataSetChanged(),因为在插入单个项目时不需要重新加载和重绘所有内容。