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

+ Recent posts