1. activity_main.xml에 RecyclerView 추가
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView" />
</LinearLayout>
2. 데이터를 담을 클래스 생성 및 설정 (Menu.java)
package org.techtown.recyclerview;
public class Menu {
String name;
String price;
public Menu(String name,String price){
this.name=name;
this.price=price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
}
3. menu_item.xml 생성 ( RecyclerView에 표시될 Layout)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="80dp"
android:layout_height="80dp"
app:srcCompat="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="메뉴"
android:textSize="25sp"
/>
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="가격"
android:textSize="25sp"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
4. Adapter 생성 및 설정(MenuAdapter.java)
package org.techtown.recyclerview;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.ViewHolder>{
ArrayList<Menu> items = new ArrayList<Menu>();
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
LayoutInflater inflater=LayoutInflater.from(viewGroup.getContext());
View itemView =inflater.inflate(R.layout.menu_item,viewGroup,false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewholder, int position) {
Menu item = items.get(position);
viewholder.setItem(item);
}
@Override
public int getItemCount() {
return items.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
TextView textView;
TextView textView2;
public ViewHolder(View itemView){
super(itemView);
textView=itemView.findViewById(R.id.textView);
textView2=itemView.findViewById(R.id.textView2);
}
public void setItem(Menu item){
textView.setText(item.getName());
textView2.setText(item.getPrice());
}
}
public void addItem(Menu item){
items.add(item);
}
public void setItems(ArrayList<Menu> items){
this.items=items;
}
public Menu getItem(int position){
return items.get(position);
}
public void setItem(int position,Menu item){
items.set(position,item);
}
}
5. MainActivity 설정
package org.techtown.recyclerview;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.Person;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RecyclerView recyclerView = findViewById(R.id.recyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(layoutManager);
MenuAdapter adapter = new MenuAdapter();
adapter.addItem(new Menu("후라이드 치킨","15000원"));
adapter.addItem(new Menu("앙념 치킨","16000원"));
adapter.addItem(new Menu("간장 치킨","17000원"));
recyclerView.setAdapter(adapter);
}
}
6. 실행 화면
'Programming > Android' 카테고리의 다른 글
안드로이드 FrameLayout 트랜잭션 (0) | 2020.01.02 |
---|---|
안드로이드 BottomNavigationView 아이콘 설정 (0) | 2020.01.02 |