I would like to implement CardView in my app so that all ListView items are CardViews. Is it as simple as encapsulating a ListVi
It's better to use CardView with RecyclerView, here is an example.
activity_main.xml (it contains the recyclerview)
cardview.xml
buid.gradle(Module:app)
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:cardview-v7:23.0.+'
compile 'com.android.support:recyclerview-v7:23.0.+'
}
RecyclerViewAdapter.java
public class RecyclerViewAdapter extends RecyclerView.Adapter {
public ArrayList myValues;
public RecyclerViewAdapter (ArrayList myValues){
this.myValues= myValues;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View listItem = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview.xml, parent, false);
return new MyViewHolder(listItem);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.myTextView.setText(myValues.get(position));
}
@Override
public int getItemCount() {
return myValues.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private TextView myTextView;
public MyViewHolder(View itemView) {
super(itemView);
myTextView = (TextView)itemView.findViewById(R.id.text_cardview);
}
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList myValues = new ArrayList();
//Populate the ArrayList with your own values
myValues.add("KitKat");
myValues.add("Lollipop");
myValues.add("Marshmallow");
RecyclerViewAdapter adapter = new RecyclerViewAdapter(myValues);
RecyclerView myView = (RecyclerView)findViewById(R.id.recyclerview);
myView.setHasFixedSize(true);
myView.setAdapter(adapter);
LinearLayoutManager llm = new LinearLayoutManager(this);
llm.setOrientation(LinearLayoutManager.VERTICAL);
myView.setLayoutManager(llm);
}
}
Refer to this tutorial for more details: A Guide to Android RecyclerView and CardView