Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 안드로이드 서비스
- android studio 앱 만드는 법
- 안드로이드 예제
- 개발강의
- Android
- flutter
- 안드로이드 네비게이션 메뉴
- 자바
- Android Java
- 개발자
- 안드로이드 코딩 기초
- 안드로이드 스튜디오
- android tutorial
- 자바 튜토리얼
- 안드로이드
- 코딩
- 앱 만드는 법
- 안드로이드 기초
- 플러터
- 코틀린
- IOS
- android example
- 홍드로이드 강의
- hongdroid
- java
- 앱 만들기
- 안드로이드 앱 만들기
- 안드로이드 튜토리얼
- 홍드로이드
- Android Studio
Archives
- Today
- Total
홍드로이드의 야매코딩
#12 안드로이드 스튜디오 리사이클러뷰 (Recycler View) 예제 [ 홍드로이드 ] 본문
[build.gradle (Module: app)]
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.example.recyclerviewexample"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:recyclerview-v7:27.1.1'
}
[activity_main.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 | <?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"> <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:scrollbarFadeDuration="0" android:scrollbarSize="5dp" android:scrollbarThumbVertical="@android:color/darker_gray" android:scrollbars="vertical"> </android.support.v7.widget.RecyclerView> <Button android:id="@+id/btn_add" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="8" android:text="추가" /> </LinearLayout> | cs |
[item_list.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 | <?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"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ImageView android:id="@+id/iv_profile" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="vertical"> <TextView android:id="@+id/tv_name" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="홍드로이드" /> <TextView android:id="@+id/tv_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="리사이클러뷰" /> </LinearLayout> </LinearLayout> </LinearLayout> | cs |
[MainData.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 41 | package com.example.recyclerviewexample; public class MainData { private int iv_profile; private String tv_name; private String tv_content; public MainData(int iv_profile, String tv_name, String tv_content) { this.iv_profile = iv_profile; this.tv_name = tv_name; this.tv_content = tv_content; } public int getIv_profile() { return iv_profile; } public void setIv_profile(int iv_profile) { this.iv_profile = iv_profile; } public String getTv_name() { return tv_name; } public void setTv_name(String tv_name) { this.tv_name = tv_name; } public String getTv_content() { return tv_content; } public void setTv_content(String tv_content) { this.tv_content = tv_content; } } | cs |
[MainAdapter.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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | package com.example.recyclerviewexample; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; public class MainAdapter extends RecyclerView.Adapter<MainAdapter.CustomViewHolder> { private ArrayList<MainData> arrayList; public MainAdapter(ArrayList<MainData> arrayList) { this.arrayList = arrayList; } @NonNull @Override public MainAdapter.CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false); CustomViewHolder holder = new CustomViewHolder(view); return holder; } @Override public void onBindViewHolder(@NonNull final MainAdapter.CustomViewHolder holder, int position) { holder.iv_profile.setImageResource(arrayList.get(position).getIv_profile()); holder.tv_name.setText(arrayList.get(position).getTv_name()); holder.tv_content.setText(arrayList.get(position).getTv_content()); holder.itemView.setTag(position); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String curName = holder.tv_name.getText().toString(); Toast.makeText(v.getContext(), curName, Toast.LENGTH_SHORT).show(); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { remove(holder.getAdapterPosition()); return true; } }); } @Override public int getItemCount() { return (null != arrayList ? arrayList.size() : 0); } public void remove(int position) { try { arrayList.remove(position); notifyItemRemoved(position); } catch (IndexOutOfBoundsException ex) { ex.printStackTrace(); } } public class CustomViewHolder extends RecyclerView.ViewHolder { protected ImageView iv_profile; protected TextView tv_name; protected TextView tv_content; public CustomViewHolder(View itemView) { super(itemView); this.iv_profile = (ImageView) itemView.findViewById(R.id.iv_profile); this.tv_name = (TextView) itemView.findViewById(R.id.tv_name); this.tv_content = (TextView) itemView.findViewById(R.id.tv_content); } } } | cs |
[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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package com.example.recyclerviewexample; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Button; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private ArrayList<MainData> arrayList; private MainAdapter mainAdapter; private RecyclerView recyclerView; private LinearLayoutManager linearLayoutManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.rv); linearLayoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(linearLayoutManager); arrayList = new ArrayList<>(); mainAdapter = new MainAdapter(arrayList); recyclerView.setAdapter(mainAdapter); Button btn_add = (Button) findViewById(R.id.btn_add); btn_add.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MainData mainData = new MainData(R.mipmap.ic_launcher, "홍드로이드", "리사이클러뷰"); arrayList.add(mainData); mainAdapter.notifyDataSetChanged(); } }); } } | cs |
'Android Java' 카테고리의 다른 글
#14 안드로이드 스튜디오 (Log출력 및 주석다는 법) 예제 [ 홍드로이드 ] (2) | 2019.06.02 |
---|---|
#13 안드로이드 스튜디오 프래그먼트 (Fragment) 예제 [ 홍드로이드 ] (0) | 2019.06.02 |
#11 안드로이드 스튜디오 카메라 (Camera) 예제 [ 홍드로이드 ] (12) | 2019.05.21 |
#10 안드로이드 스튜디오 네비게이션 메뉴 (Navigation Menu Custom) 예제 [ 홍드로이드 ] (2) | 2019.05.21 |
#9 안드로이드 스튜디오 웹뷰 (WebView) 예제 [ 홍드로이드 ] (3) | 2019.05.21 |
Comments