diff --git a/RecyclerViewWithHeader/.idea/codeStyleSettings.xml b/RecyclerViewWithHeader/.idea/codeStyleSettings.xml
new file mode 100644
index 0000000..25a8b87
--- /dev/null
+++ b/RecyclerViewWithHeader/.idea/codeStyleSettings.xml
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/README.md b/RecyclerViewWithHeader/README.md
index a644534..f71bf2e 100644
--- a/RecyclerViewWithHeader/README.md
+++ b/RecyclerViewWithHeader/README.md
@@ -1 +1,24 @@
# RecyclerView with header
+### abstract class for
++ recyclerview with header
++ handling click event on each item using itemClickListener interface
++ manage a list using Realm
+
+## Android Developer Version Info
++ Build Tool Version = 25.0.3
++ Compile SDK Version = 25
++ Target SDK Version = 25
++ Android Studio 3.0 Beta 2
+
+## User Library Version
++ Kotlin 1.1.4-2
++ Realm 0.88.2
++ support library Version = 25.3.1
+
+## Dependencies
+empty
+
+## Guide
+#### Step1. Create Item class extends RealmObject
+#### Step2. Create Item layout and ItemHolder which extends BaseViewHolder
+#### Step3. Create Adapter which extends ListAdapterWithHeader
diff --git a/RecyclerViewWithHeader/app/build.gradle b/RecyclerViewWithHeader/app/build.gradle
index 2721722..b9e1d4a 100644
--- a/RecyclerViewWithHeader/app/build.gradle
+++ b/RecyclerViewWithHeader/app/build.gradle
@@ -1,6 +1,7 @@
apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android' // 코틀린 플러그인을 적용합니다.
+apply plugin: 'kotlin-android' // 코틀린 플러그인을 적용
apply plugin: 'kotlin-android-extensions' // 익스텐션 플러그인 적용
+apply plugin: 'realm-android' // Realm 플러그인 적용
android {
compileSdkVersion 25
diff --git a/RecyclerViewWithHeader/app/src/main/AndroidManifest.xml b/RecyclerViewWithHeader/app/src/main/AndroidManifest.xml
index f5b16e2..f1a3e83 100644
--- a/RecyclerViewWithHeader/app/src/main/AndroidManifest.xml
+++ b/RecyclerViewWithHeader/app/src/main/AndroidManifest.xml
@@ -3,6 +3,7 @@
package="com.example.lf_wannabe.recyclerviewwithheader" >
+
+
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/adapter/ListAdapterWithHeader.kt b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/adapter/ListAdapterWithHeader.kt
index f44528c..44c3665 100644
--- a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/adapter/ListAdapterWithHeader.kt
+++ b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/adapter/ListAdapterWithHeader.kt
@@ -2,46 +2,35 @@ package com.tutorial.mim.recyclerview_header.adapter
import android.support.v4.app.FragmentActivity
import android.support.v7.widget.RecyclerView
-import android.view.ViewGroup
import com.tutorial.mim.recyclerview_header.model.Item
-
-import android.view.LayoutInflater
-import com.example.lf_wannabe.recyclerviewwithheader.R
-import com.tutorial.mim.recyclerview_header.model.ItemHolder
+import android.view.View
+import io.realm.RealmObject
+import io.realm.RealmResults
/**
* Created by lf_wannabe on 26/08/2017.
*/
-abstract class ListAdapterWithHeader(val activity: FragmentActivity, protected val hasHeader: Boolean)
- : RecyclerView.Adapter(){
-
- private val HEADER_TYPE: Int = 0
- private val ITEM_TYPE: Int = 1
+abstract class ListAdapterWithHeader(
+ val activity: FragmentActivity, protected val hasHeader: Boolean)
+ : RecyclerView.Adapter() {
- private var list: ArrayList- = ArrayList()
+ protected val HEADER_TYPE: Int = 0
+ protected val ITEM_TYPE: Int = 1
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder
- = when(viewType){
- HEADER_TYPE -> createHeaderView(activity.layoutInflater, parent)
- else -> ItemHolder(activity.layoutInflater.inflate(R.layout.list_content, parent, false))
- }
+ private lateinit var list: RealmResults
- protected abstract fun createHeaderView(layoutInflater: LayoutInflater, parent: ViewGroup): RecyclerView.ViewHolder
-
- protected abstract fun onBindHeaderView(holder: RecyclerView.ViewHolder, position: Int)
+ companion object {
+ lateinit var mOnItemClickListener: OnItemClickListener
+ }
- override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
- when (getItemViewType(position)) {
- HEADER_TYPE -> onBindHeaderView(holder, position)
- ITEM_TYPE -> (holder as ItemHolder).onBind(getItem(position))
- }
+ interface OnItemClickListener {
+ fun onItemClick(v: View, position: Int) {}
}
- fun setData(list: ArrayList
- ){
- // null 체크 필요없나 ?
- this.list = list
+ fun setOnItemClickListener(onItemClickListener: OnItemClickListener) {
+ mOnItemClickListener = onItemClickListener
}
override fun getItemViewType(position: Int): Int {
@@ -49,9 +38,13 @@ abstract class ListAdapterWithHeader(val activity: FragmentActivity, protected v
}
override fun getItemCount(): Int {
- return if (list != null) (list as ArrayList).size + (if (hasHeader) 1 else 0) else if (hasHeader) 1 else 0
+ return list.size + if (hasHeader) 1 else 0
}
- private fun getItem(position: Int): Item? = list?.get(position - 1)
+ protected fun getItem(position: Int): T = list[position - if (hasHeader) 1 else 0]
+ fun setData(list: RealmResults) {
+ this.list = list
+ notifyDataSetChanged()
+ }
}
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/ex/ExAdapter.kt b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/ex/ExAdapter.kt
index 619cdfa..8b8e715 100644
--- a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/ex/ExAdapter.kt
+++ b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/ex/ExAdapter.kt
@@ -6,22 +6,71 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import com.example.lf_wannabe.recyclerviewwithheader.R
import com.tutorial.mim.recyclerview_header.adapter.ListAdapterWithHeader
-import com.tutorial.mim.recyclerview_header.model.HeaderHolder
+import com.tutorial.mim.recyclerview_header.model.BaseViewHolder
import com.tutorial.mim.recyclerview_header.model.Item
+import com.tutorial.mim.recyclerview_header.model.ItemHolder
+import io.realm.RealmResults
/**
* Created by lf_wannabe on 27/08/2017.
*/
class ExAdapter(ac: FragmentActivity, hasHeader: Boolean, item: Item)
- : ListAdapterWithHeader(ac, hasHeader) {
+ : ListAdapterWithHeader
- (ac, hasHeader) {
var mItem: Item = item
- override fun createHeaderView(layoutInflater: LayoutInflater, parent: ViewGroup)
- : RecyclerView.ViewHolder
- = HeaderHolder(layoutInflater.inflate(R.layout.list_header, parent, false))
+ override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ItemHolder =
+ when (viewType) {
+ HEADER_TYPE -> ItemHolder(LayoutInflater.from(parent!!.context)
+ .inflate(R.layout.list_header, parent, false))
+ else -> ItemHolder(LayoutInflater.from(parent!!.context)
+ .inflate(R.layout.list_content, parent, false))
+ }
- override fun onBindHeaderView(holder: RecyclerView.ViewHolder, position: Int) {
- (holder as HeaderHolder).onBind(mItem)
+ override fun onBindViewHolder(holder: ItemHolder?, position: Int) {
+ when (getItemViewType(position)) {
+ HEADER_TYPE ->
+ holder!!.onBindHeader(mItem)
+ ITEM_TYPE -> {
+ with(holder!!){
+ onBind(getItem(position))
+
+ // setOnClickListener를 부모에게 숨기고 싶다
+ holder.itemView.setOnClickListener {
+ view ->
+ if (mOnItemClickListener != null) {
+ mOnItemClickListener.onItemClick(view, layoutPosition)
+ }
+ }
+ }
+ }
+ }
}
+// override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder =
+// when (viewType) {
+// HEADER_TYPE -> ItemHolder(LayoutInflater.from(parent.context)
+// .inflate(R.layout.list_header, parent, false))
+// else -> ItemHolder(LayoutInflater.from(parent.context)
+// .inflate(R.layout.list_content, parent, false))
+// }
+//
+// override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+// when (getItemViewType(position)) {
+// HEADER_TYPE ->
+// (holder as ItemHolder).onBindHeader(mItem)
+// ITEM_TYPE -> {
+// with(holder as ItemHolder){
+// onBind(getItem(position) as Item)
+//
+// // setOnClickListener를 부모에게 숨기고 싶다
+// holder.itemView.setOnClickListener {
+// view ->
+// if (mOnItemClickListener != null) {
+// mOnItemClickListener.onItemClick(view, layoutPosition)
+// }
+// }
+// }
+// }
+// }
+// }
}
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/BaseViewHolder.kt b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/BaseViewHolder.kt
index 0f033b3..c83e339 100644
--- a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/BaseViewHolder.kt
+++ b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/BaseViewHolder.kt
@@ -3,13 +3,15 @@ package com.tutorial.mim.recyclerview_header.model
import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.View
+import io.realm.RealmObject
/**
* Created by lf_wannabe on 27/08/2017.
*/
-abstract class BaseViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+abstract class BaseViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
- abstract fun onBind(item: Item?)
+ abstract fun onBind(item: T?)
+
+ abstract fun onBindHeader(header: H?)
- abstract fun onBind(data: Item, onClickListener: View.OnClickListener, context: Context)
}
diff --git a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/HeaderHolder.kt b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/HeaderHolder.kt
deleted file mode 100644
index ef90865..0000000
--- a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/HeaderHolder.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.tutorial.mim.recyclerview_header.model
-
-import android.content.Context
-import android.view.View
-import kotlinx.android.synthetic.main.list_header.view.*
-
-/**
- * Created by lf_wannabe on 27/08/2017.
- */
-class HeaderHolder(itemView: View) : BaseViewHolder
- (itemView){
-
- override fun onBind(item: Item?) {
- itemView.header.text = item?.title
- }
-
- override fun onBind(data: Item, onClickListener: View.OnClickListener, context: Context) {
- TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
- }
-}
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/Item.kt b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/Item.kt
index 44ebf8d..0a2f72d 100644
--- a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/Item.kt
+++ b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/Item.kt
@@ -1,10 +1,12 @@
package com.tutorial.mim.recyclerview_header.model
+import io.realm.RealmObject
+
/**
* Created by lf_wannabe on 27/08/2017.
*/
-class Item (
- var num: Int = 0,
- var title: String = "TITLE",
- var content: String = "CONTENT"
-)
\ No newline at end of file
+open class Item(
+ open var num: Int = 0,
+ open var title: String = "TITLE",
+ open var content: String = "CONTENT"
+): RealmObject()
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/ItemHolder.kt b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/ItemHolder.kt
index 2e11511..e671e5e 100644
--- a/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/ItemHolder.kt
+++ b/RecyclerViewWithHeader/app/src/main/Kotlin/com/tutorial/mim/recyclerview_header/model/ItemHolder.kt
@@ -1,13 +1,13 @@
package com.tutorial.mim.recyclerview_header.model
-import android.content.Context
import android.view.View
import kotlinx.android.synthetic.main.list_content.view.*
+import kotlinx.android.synthetic.main.list_header.view.*
/**
* Created by lf_wannabe on 27/08/2017.
*/
-class ItemHolder(itemView: View) : BaseViewHolder(itemView) {
+class ItemHolder(itemView: View) : BaseViewHolder
- (itemView) {
override fun onBind(item: Item?) {
with(itemView){
number.text = item?.num.toString()
@@ -15,7 +15,7 @@ class ItemHolder(itemView: View) : BaseViewHolder(itemView) {
}
}
- override fun onBind(data: Item, onClickListener: View.OnClickListener, context: Context) {
- TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ override fun onBindHeader(header: Item?) {
+ itemView.header.text = header?.title
}
}
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/BaseApplication.kt b/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/BaseApplication.kt
new file mode 100644
index 0000000..f50652e
--- /dev/null
+++ b/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/BaseApplication.kt
@@ -0,0 +1,26 @@
+package com.example.lf_wannabe.recyclerviewwithheader
+
+import android.app.Application
+import io.realm.Realm
+import io.realm.RealmConfiguration
+import kotlin.properties.Delegates
+
+/**
+ * Created by lf_wannabe on 28/08/2017.
+ */
+class BaseApplication: Application() {
+
+// companion object {
+// var realm: Realm by Delegates.notNull()
+// var realmConfig: RealmConfiguration by Delegates.notNull()
+// }
+ override fun onCreate() {
+ super.onCreate()
+ Realm.init(this)
+
+// realmConfig = RealmConfiguration.Builder(this).build()
+// realm = Realm.getInstance(realmConfig)
+
+ }
+
+}
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/MainActivity.kt b/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/MainActivity.kt
index 21e08a6..d3e76d4 100644
--- a/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/MainActivity.kt
+++ b/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/MainActivity.kt
@@ -3,31 +3,61 @@ package com.example.lf_wannabe.recyclerviewwithheader
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
+import android.view.View
+import android.widget.Toast
+import com.tutorial.mim.recyclerview_header.adapter.ListAdapterWithHeader
import com.tutorial.mim.recyclerview_header.ex.ExAdapter
import com.tutorial.mim.recyclerview_header.model.Item
+import io.realm.Realm
import kotlinx.android.synthetic.main.activity_main.*
+import kotlin.properties.Delegates
class MainActivity : AppCompatActivity() {
+ var i: Int = 1
+
+ // by Delegates.notNull() => 멤버변수가 클래스 생성될때 초기화 되지않지만 변수 접근 전에 반드시 초기화되어야 한다!
+ private var realm: Realm by Delegates.notNull()
+
+ var vAdapter: ExAdapter by Delegates.notNull()
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
- var vList: ArrayList
- = ArrayList()
- for(i in 1..100){
- vList.add(Item(i, "TITLE", "CONTENT"))
- }
+ realm = Realm.getDefaultInstance()
- var vAdapter: ExAdapter = ExAdapter(this, true, Item())
- with(vAdapter){
- setData(vList)
- }
+ i = realm.where(Item::class.java).findAll().size + 1
+
+ vAdapter = ExAdapter(this, true, Item())
+ vAdapter.setOnItemClickListener(object : ListAdapterWithHeader.OnItemClickListener {
+ override fun onItemClick(v: View, position: Int) {
+ Toast.makeText(applicationContext, position.toString() + "TOUCHED", Toast.LENGTH_SHORT).show()
+ }
+ })
with(list){
setHasFixedSize(false)
adapter = vAdapter
layoutManager = LinearLayoutManager(this@MainActivity)
}
- }
+ addBtn.setOnClickListener{
+// startActivity(Intent(this, PopupActivity::class.java))
+
+ realm.beginTransaction()
+ var tmp = realm.createObject(Item::class.java)
+ tmp.num = i++
+ tmp.title = "TITLE"
+ tmp.content = "CONTENT"
+ realm.commitTransaction()
+
+ vAdapter.setData(realm.where(Item::class.java).findAll())
+ }
+
+ }
+ override fun onResume() {
+ super.onResume()
+ vAdapter.setData(realm.where(Item::class.java).findAll())
+ }
}
diff --git a/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/PopupActivity.kt b/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/PopupActivity.kt
new file mode 100644
index 0000000..ac1b1fa
--- /dev/null
+++ b/RecyclerViewWithHeader/app/src/main/java/com/example/lf_wannabe/recyclerviewwithheader/PopupActivity.kt
@@ -0,0 +1,17 @@
+package com.example.lf_wannabe.recyclerviewwithheader
+
+import android.os.Bundle
+import android.os.PersistableBundle
+import android.support.v7.app.AppCompatActivity
+
+/**
+ * Created by lf_wannabe on 30/08/2017.
+ */
+class PopupActivity : AppCompatActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_popup)
+
+ }
+}
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/res/layout/activity_main.xml b/RecyclerViewWithHeader/app/src/main/res/layout/activity_main.xml
index 230c482..e2ff269 100644
--- a/RecyclerViewWithHeader/app/src/main/res/layout/activity_main.xml
+++ b/RecyclerViewWithHeader/app/src/main/res/layout/activity_main.xml
@@ -1,17 +1,30 @@
-
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="16dp"
+ android:layout_marginStart="16dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent">
+
+
diff --git a/RecyclerViewWithHeader/app/src/main/res/layout/activity_popup.xml b/RecyclerViewWithHeader/app/src/main/res/layout/activity_popup.xml
new file mode 100644
index 0000000..d5ee7ba
--- /dev/null
+++ b/RecyclerViewWithHeader/app/src/main/res/layout/activity_popup.xml
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RecyclerViewWithHeader/app/src/main/res/layout/list_content.xml b/RecyclerViewWithHeader/app/src/main/res/layout/list_content.xml
index 7879e82..7cba304 100644
--- a/RecyclerViewWithHeader/app/src/main/res/layout/list_content.xml
+++ b/RecyclerViewWithHeader/app/src/main/res/layout/list_content.xml
@@ -1,18 +1,31 @@
-
+
+ android:layout_height="wrap_content"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
-
\ No newline at end of file
+
+
diff --git a/RecyclerViewWithHeader/app/src/main/res/layout/list_header.xml b/RecyclerViewWithHeader/app/src/main/res/layout/list_header.xml
index 45258ea..846c938 100644
--- a/RecyclerViewWithHeader/app/src/main/res/layout/list_header.xml
+++ b/RecyclerViewWithHeader/app/src/main/res/layout/list_header.xml
@@ -1,10 +1,11 @@
+ android:layout_width="match_parent"
+ android:layout_height="60dp">
diff --git a/RecyclerViewWithHeader/app/src/main/res/mipmap-mdpi/ic_add_circle_black_24dp.png b/RecyclerViewWithHeader/app/src/main/res/mipmap-mdpi/ic_add_circle_black_24dp.png
new file mode 100644
index 0000000..ac376d0
Binary files /dev/null and b/RecyclerViewWithHeader/app/src/main/res/mipmap-mdpi/ic_add_circle_black_24dp.png differ
diff --git a/RecyclerViewWithHeader/app/src/main/res/mipmap-mdpi/ic_delete_black_24dp.png b/RecyclerViewWithHeader/app/src/main/res/mipmap-mdpi/ic_delete_black_24dp.png
new file mode 100644
index 0000000..999aa4c
Binary files /dev/null and b/RecyclerViewWithHeader/app/src/main/res/mipmap-mdpi/ic_delete_black_24dp.png differ
diff --git a/RecyclerViewWithHeader/app/src/main/res/values/colors.xml b/RecyclerViewWithHeader/app/src/main/res/values/colors.xml
index 3ab3e9c..12d341f 100644
--- a/RecyclerViewWithHeader/app/src/main/res/values/colors.xml
+++ b/RecyclerViewWithHeader/app/src/main/res/values/colors.xml
@@ -3,4 +3,10 @@
#3F51B5
#303F9F
#FF4081
+
+ #ffffff
+ #f5f5f5
+
+ #6d6d6d
+ #1b1b1b
diff --git a/RecyclerViewWithHeader/app/src/main/res/values/strings.xml b/RecyclerViewWithHeader/app/src/main/res/values/strings.xml
index 950cfa8..320519a 100644
--- a/RecyclerViewWithHeader/app/src/main/res/values/strings.xml
+++ b/RecyclerViewWithHeader/app/src/main/res/values/strings.xml
@@ -1,3 +1,15 @@
RecyclerViewWithHeader
+
+
+ User Info
+ Android O
+ BirthDay
+ Favorit
+ Age
+ City
+ AUG 23
+ Soccer
+ 25
+ Soeul
diff --git a/RecyclerViewWithHeader/app/src/main/res/values/styles.xml b/RecyclerViewWithHeader/app/src/main/res/values/styles.xml
index 5885930..a64e561 100644
--- a/RecyclerViewWithHeader/app/src/main/res/values/styles.xml
+++ b/RecyclerViewWithHeader/app/src/main/res/values/styles.xml
@@ -8,4 +8,25 @@
- @color/colorAccent
+
+
+
+
+
+
+
+
diff --git a/RecyclerViewWithHeader/build.gradle b/RecyclerViewWithHeader/build.gradle
index 811b84a..63b0edc 100644
--- a/RecyclerViewWithHeader/build.gradle
+++ b/RecyclerViewWithHeader/build.gradle
@@ -6,8 +6,9 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.3.3'
+ classpath 'com.android.tools.build:gradle:3.0.0-beta2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.4-2' // 코틀린 플러그인 적용
+ classpath "io.realm:realm-gradle-plugin:3.5.0" // Realm for Kotlin플러그인 적용
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/RecyclerViewWithHeader/gradle/wrapper/gradle-wrapper.properties b/RecyclerViewWithHeader/gradle/wrapper/gradle-wrapper.properties
index 9262ef9..6105d28 100644
--- a/RecyclerViewWithHeader/gradle/wrapper/gradle-wrapper.properties
+++ b/RecyclerViewWithHeader/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sun Aug 27 15:41:53 KST 2017
+#Mon Aug 28 22:31:21 KST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip