2017-08-19 11 views
0

リサイクルビューがあります。値はリサイクラーがスクロールダウンされると失われます。私は7より大きい値を持ちたいと思います。値は最初に開いたときに上がりますが、スクロールバーを降りると元の状態に戻ります。RecyclerViewスクロールセーブ

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

あなたのアドバイスは大事です

ありがとうございました!

+0

もっと詳しく説明できますか? – Kunu

+0

もちろん、私が降りると赤く変わるので、黄色でなければならない – Yavuz

答えて

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

これを試してください。