Android - 在点击监听器上修改适配器和recyclerview的项目

时间:2016-10-08 18:10:54

标签: android android-recyclerview

我的情况是这样的:我在运行时在一个改进方法异步请求中设置了一个recyclelerView,在循环中调用。 因此,逐项将这些项目添加到recyclerview中。

     @Override
        public void onResponse(Call<DirectionResults> call, Response<DirectionResults> response) {
            Legs legs = response.body().getRoutes().get(0).getLegses().get(0);
            NearbyBusStation current = new NearbyBusStation(currentItem, legs.getDistance().getValue(), legs.getDuration().getText());

            int i;
            for(i = 0; i < nearbyBusStations.size();i++){
                if (current.getDistance() < nearbyBusStations.get(i).getDistance())
                    break;
            }
            nearbyBusStations.add(i,current);
            mAdapter.notifyItemInserted(nearbyBusStations.size() - 1);

        }

在适配器中:

   @Override
public void onBindViewHolder(ViewHolder holder, int position) {
    // - get element from your dataset at this position
    // - replace the contents of the view with that element
    final NearbyBusStation currentItem = mDataset.get(position);
    holder.name.setText(currentItem.getName().getName());
    holder.distance.setText(currentItem.getDistance() +" m");
    holder.time.setText(currentItem.getTime() + " a piedi");
    holder.itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
         //I suppose that code go here
         }

我希望当点击recyclerview的一个项目时,它会展开添加下面的新元素,或者清除recyclerview并添加新元素,并返回一个按钮以返回初始的recyclerview。 (点击一个公共汽车站,它将打开下一个从它通过的公共汽车) 我尝试使用外部库来创建可扩展的Recyclerview,但是它们与固定项目一起工作得非常好,在我的情况下,项目是在运行时通过改造添加的。 如果在onBindViewHolder里面使用onclick是正确的,怎么样?用另一个适配器? 我需要逐个插入项目,因为我使用这个库来制作动画

  compile 'jp.wasabeef:recyclerview-animators:2.2.4'

只能逐个插入或删除元素,但如果有问题,我可以毫无问题地更改动画库。

提前谢谢!

0 个答案:

没有答案