T.N.V/응용1
RecyclerView 적용하기
해가꿈꾸는달
2018. 3. 27. 22:15
반응형
난 프래그먼트로 만들었기 때문에 일반 Activity 와는 다르게 적용.
//recyclerView 선언 및 recyclerAdapter 선언
private RecyclerView recyclerView = null;
private RecyclerAdapter recyclerAdapter = null;
onCreateView에 다음을 작성
//리싸이클러뷰를 붙일 곳을 찾음.
recyclerAdapter = new RecyclerAdapter(this.getContext());
recyclerView = rootView.findViewById(R.id.frg_info_recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this.getContext()));
recyclerView.setHasFixedSize(true);
recyclerView.setAdapter(recyclerAdapter);
참고 한 블로그들은 다 새 class를 만들어서 하지만 난 내부 class를 이용하여서 작성.
//커스텀 뷰 홀더
//Item layout에 존재하는 위젯들을 바인딩. 바인딩?
class ViewHolder extends RecyclerView.ViewHolder{
TextView stockCode;
TextView companyName;
LinearLayout recyclerview_linear;
public ViewHolder(View itemView) {
super(itemView);
stockCode = itemView.findViewById(R.id.recyclerview_stockCode);
companyName = itemView.findViewById(R.id.recyclerview_stockName);
recyclerview_linear = itemView.findViewById(R.id.recyclerview_linear);
}
}
public class RecyclerAdapter extends RecyclerView.Adapter<ViewHolder>{
private Context context;
public RecyclerAdapter(Context context){
this.context = context;
}
//새로운 뷰 홀더 생성
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.fragment_information_recyclerview_item, parent,false));
}
// View의 내용을 해당 포지션의 데이터로 바꿈
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final int positionTmp = position;
holder.stockCode.setText(item.getStockList().get(position).getStockCode());
holder.companyName.setText(item.getStockList().get(position).getCompanyName());
//recyclerView에서 item을 클릭했을때 처리.
holder.recyclerview_linear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
//데이터의 사이즈를 리턴
@Override
public int getItemCount() {
return item.getStockList().size();
}
}
참고 1 : http://androidyongyong.tistory.com/5 (source)
참고 2 : http://liveonthekeyboard.tistory.com/135 (source)
참고 3: https://blog.naver.com/sgepyh2916/221159150404 (source)
참고 4: http://itmining.tistory.com/12 (얘는 개념 공부)
반응형