Android simple RecyclerView Tutorial(source)
Hello everyone.
I'm gonna make a simple RecyclerView example.
This what I want to make.
*build.gradle (Module: app)
*location : res/layout/
1
2
3
4
5
6
7
8
9
10
11
|
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support:cardview-v7:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
}
| cs |
*file name : activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#dddddd"
/>
</LinearLayout>
| cs |
*location : res/layout/
*file name : recycler_view_row.xml
*file name : recycler_view_row.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="80dp"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardElevation="5dp"
app:cardCornerRadius="5dp"
android:layout_marginBottom="1dp"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_marginStart="2dp"
android:layout_marginEnd="2dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/iv_picture"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center_vertical"
android:layout_margin="10dp"
tools:src="@drawable/bread"
/>
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="20sp"
tools:text="5,000원"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
| cs |
*file name : FoodInfo.java
1
2
3
4
5
6
7
8
9
|
public class FoodInfo {
public int drawableId;
public String price;
public FoodInfo(int drawableId, String price){
this.drawableId = drawableId;
this.price = price;
}
}
| cs |
*file name : MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public class MainActivity extends AppCompatActivity {
RecyclerView mRecyclerView;
RecyclerView.LayoutManager mLayoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = findViewById(R.id.recycler_view);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
ArrayList<FoodInfo> foodInfoArrayList = new ArrayList<>();
foodInfoArrayList.add(new FoodInfo(R.drawable.strawberry, "5,000원"));
foodInfoArrayList.add(new FoodInfo(R.drawable.bread, "4,600원"));
foodInfoArrayList.add(new FoodInfo(R.drawable.noodle, "4,000원"));
MyAdapter myAdapter = new MyAdapter(foodInfoArrayList);
mRecyclerView.setAdapter(myAdapter);
}
}
| cs |
*file name : MyAdapter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public static class MyViewHolder extends RecyclerView.ViewHolder {
ImageView ivPicture;
TextView tvPrice;
MyViewHolder(View view){
super(view);
ivPicture = view.findViewById(R.id.iv_picture);
tvPrice = view.findViewById(R.id.tv_price);
}
}
private ArrayList<FoodInfo> foodInfoArrayList;
MyAdapter(ArrayList<FoodInfo> foodInfoArrayList){
this.foodInfoArrayList = foodInfoArrayList;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_row, parent, false);
return new MyViewHolder(v);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
MyViewHolder myViewHolder = (MyViewHolder) holder;
myViewHolder.ivPicture.setImageResource(foodInfoArrayList.get(position).drawableId);
myViewHolder.tvPrice.setText(foodInfoArrayList.get(position).price);
}
@Override
public int getItemCount() {
return foodInfoArrayList.size();
}
}
| cs |
*image resources
*location : res/drawable/
bread.png
noodle.png
strawberry.png
No comments: