ListView를 대용해 사용가능한 RecyclerView
CardView, 가로 스크롤, 세로 스크롤 등 활용도가 높음
1.xml
layout의 원하는 위치에 Recyclerview를 넣는다.
<android.support.v7.widget.RecyclerView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"></android.support.v7.widget.RecyclerView>
2. 초기화
public class TestActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
RecyclerView listView = (RecyclerView) view.findViewById(R.id.list_view);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); // horizonta, vertical 옵션에 따라 가로/세로 list
listView.setHasFixedSize(true);
listView.setLayoutManager(layoutManager);
TestAdapter adapter = new TestAdapter(getActivity(), R.layout.row_item, testarrayList);
listView.setAdapter(adapter);
}
}
3. Adapter
class TestAdapter extends RecyclerView.Adapter<TestAdapter.ViewHolder> {
private final int resource;
private Context context;
private List<String> list;
public TestAdapter(Context context, @AnyRes int resource, List<String> list) {
this.resource = resource;
this.context = context;
this.list = list;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(resource, null);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final String item = getItem(position);
holder.title.setText(item);
}
@Override
public int getItemCount() {
return list.size();
}
private String getItem(int position) {
return list.get(position);
}
public void clear() {
if(null != list) {
list.clear();
}
}
public void addAll(List<String> list) {
this.list = list;
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final TextView title;
public ViewHolder(View parent) {
super(parent);
title= (TextView) parent.findViewById(R.id.title);
}
}
}
'안드로이드' 카테고리의 다른 글
db -> px 단위 변경 (0) | 2017.03.06 |
---|---|
안드로이드 내부 저장소 용량 구하기 (0) | 2017.03.06 |
공유 가능 앱 리스트 가져오기 (0) | 2017.03.06 |
안드로이드 앱의 cpu 사용량 구하기 (0) | 2017.03.06 |
AsyncTask (0) | 2011.09.06 |