반응형
main.xml
<?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"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recyclerView"/>
</LinearLayout>
person.java
package com.cookandroid.recycler_ex03;
public class Person {
String name;
String mobile;
public Person(String name, String mobile) {
this.name = name;
this.mobile = mobile;
}
public String getName(){
return name;
}
public void setName(){
this.name=name;
}
public String getMobile(){
return mobile;
}
public void setMobile(){
this.mobile=mobile;
}
}
personadapter.java
package com.cookandroid.recycler_ex03;
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 PersonAdapter extends RecyclerView.Adapter<PersonAdapter.ViewHolder> {
ArrayList<Person> items =new ArrayList<>();
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
View itemView = inflater.inflate(R.layout.person_item,viewGroup,false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
Person 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(Person item){
textView.setText(item.getName());
textView2.setText(item.getMobile());
}
}
public void addItem(Person item){
items.add(item);
}
public void setItems(ArrayList<Person>items){
this.items = items;
}
public Person getItem(int position){
return items.get(position);
}
public void setItem(int position,Person item){
items.set(position,item);
}
}
person_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="#FFFFFFFF"
app:cardCornerRadius="10dp"
app:cardElevation="5dp"
app:cardUseCompatPadding="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="80dp"
android:layout_height="80dp"
android:padding="5dp"
app:srcCompat="@mipmap/ic_launcher"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="이름"
android:textSize="30sp"/>
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="전화번호"
android:textColor="#FF0000FF"
android:textSize="25sp"/>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
main.java
package com.cookandroid.recycler_ex03;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.widget.LinearLayout;
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);
PersonAdapter adapter = new PersonAdapter();
adapter.addItem(new Person("김민수","010-1000-1000"));
adapter.addItem(new Person("김하늘","010-2000-2000"));
adapter.addItem(new Person("홍길동","010-4000-3000"));
adapter.addItem(new Person("홍길동","010-5000-3000"));
adapter.addItem(new Person("홍길동","010-6000-3000"));
adapter.addItem(new Person("홍길동","010-7000-3000"));
adapter.addItem(new Person("홍길동","010-8000-3000"));
recyclerView.setAdapter(adapter);
}
}
반응형
'Programming > Android' 카테고리의 다른 글
안드로이드 리사이클러뷰(RecyclerView) 예제 (0) | 2021.08.17 |
---|---|
안드로이드 리스트뷰(listview) 예제 (0) | 2021.08.17 |
안드로이드 프로그래밍 테이블레이아웃계산기 (안드로이드 예제) (0) | 2021.08.16 |
안드로이드 프로그래밍 직접풀어보기5-4 (안드로이드 예제) (0) | 2021.08.16 |
안드로이드 프로그래밍 RelativeLayout 예제 (0) | 2021.08.16 |