如何进行RecyclerView滚动保存

时间:2017-08-19 13:10:16

标签: java android android-fragments scroll android-recyclerview

我有一个recyclerView。当回收器向下滚动时,值会丢失。我希望值大于7.第一次打开时会出现值但是当我向下滚动条时,它会返回到其原始状态。

FragmentB.java

public class FragmentB extends  Fragment{
View view ;
TextView textView;
RecyclerView recyclerView ;
ArrayList<OnemliDepremler> onemliDepremler;
BuyukRecyclerAdapter buyukRecyclerAdapter;


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.fragment_sabit,container,false);
    // textView=view.findViewById(R.id.textView3);

    recyclerView = view.findViewById(R.id.recyclerView);
    LinearLayoutManager layoutManager=new LinearLayoutManager(getActivity());
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    layoutManager.scrollToPosition(0);
    recyclerView.setLayoutManager(layoutManager);
    onemliDepremler=new ArrayList<OnemliDepremler>();




    Factory.getInstance().buyukDepremModel().enqueue(new Callback<OnemliDepremModel>() {
        @Override
        public void onResponse(Call<OnemliDepremModel> call, Response<OnemliDepremModel> response) {

            buyukRecyclerAdapter=new BuyukRecyclerAdapter(response.body().data.subList(0, 10));
            recyclerView.setAdapter(buyukRecyclerAdapter);
        }

        @Override
        public void onFailure(Call<OnemliDepremModel> call, Throwable t) {

        }
    });



    return view;

}

}

BuyukRecyclerAdapter.java

 public class BuyukRecyclerAdapter extends RecyclerView.Adapter<BuyukRecyclerAdapter.ViewHolder> {

public static class ViewHolder extends RecyclerView.ViewHolder{
    public TextView buyukluk;
    public TextView yer;
    public TextView tarih;
    public CardView cardView ;
    FrameLayout frameLayout;

    public ViewHolder(View itemView) {
        super(itemView);
        cardView = itemView.findViewById(R.id.card_view);
        buyukluk=itemView.findViewById(R.id.text_buyukluk);
        yer=itemView.findViewById(R.id.text_yer);
        tarih=itemView.findViewById(R.id.text_tarih);
        frameLayout=itemView.findViewById(R.id.frame_layout);
    }
}
List<Datum> onemliDepremler;

public BuyukRecyclerAdapter(List<Datum> onemliDepremler) {
    this.onemliDepremler = onemliDepremler;
}

@Override
public BuyukRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.onemli_custom,parent,false);
    final ViewHolder view_holder=new ViewHolder(v);
    return view_holder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.buyukluk.setText(onemliDepremler.get(position).siddeti);
    holder.tarih.setText("Tarih  :"+onemliDepremler.get(position).tarih);
    holder.yer.setText(onemliDepremler.get(position).lokasyon);

    if(Float.parseFloat(onemliDepremler.get(position).siddeti)>7){
        holder.frameLayout.setBackgroundColor(Color.RED);
    }


}

@Override
public int getItemCount() {
    return onemliDepremler.size();
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
}

}

enter image description here

enter image description here

您的建议对我很重要

非常感谢!

1 个答案:

答案 0 :(得分:0)

if(Float.parseFloat(onemliDepremler.get(position).siddeti)>7){
     holder.frameLayout.setBackgroundColor(Color.RED);
}else{
     holder.frameLayout.setBackgroundColor(Color.YELLOW);
}

试试这个。