diff --git a/app/src/main/java/jackall/devrealm/adapter/MainAdapter.kt b/app/src/main/java/jackall/devrealm/adapter/MainAdapter.kt new file mode 100644 index 0000000..56859a9 --- /dev/null +++ b/app/src/main/java/jackall/devrealm/adapter/MainAdapter.kt @@ -0,0 +1,40 @@ +package jackall.devrealm.adapter + +import android.content.Context +import android.databinding.DataBindingUtil +import android.support.v7.widget.RecyclerView +import android.view.LayoutInflater +import android.view.ViewGroup +import jackall.devrealm.R +import jackall.devrealm.databinding.ListItemBinding +import jackall.devrealm.viewmodel.ItemViewModel + +/** + * Created by matsumoto_k on 2017/11/08. + */ +class MainAdapter(val context: Context, val items: ArrayList) : RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder { + val binding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.list_item, parent, false) + return ViewHolder(binding) + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) { + + } + + override fun getItemCount(): Int { + return items.count() + } + + fun insert(item: ItemViewModel) { + items.add(item) + notifyItemInserted(itemCount) + } + + fun remove(position: Int) { + items.removeAt(position) + notifyItemRemoved(position) + } + + inner class ViewHolder(val binding: ListItemBinding) : RecyclerView.ViewHolder(binding.root) +} \ No newline at end of file diff --git a/app/src/main/java/jackall/devrealm/viewmodel/ItemViewModel.kt b/app/src/main/java/jackall/devrealm/viewmodel/ItemViewModel.kt new file mode 100644 index 0000000..de62ecd --- /dev/null +++ b/app/src/main/java/jackall/devrealm/viewmodel/ItemViewModel.kt @@ -0,0 +1,22 @@ +package jackall.devrealm.viewmodel + +import android.arch.lifecycle.ViewModel +import android.databinding.ObservableField +import jackall.devrealm.vo.Person + +/** + * Created by matsumoto_k on 2017/11/08. + */ +class ItemViewModel(person: Person) : ViewModel() { + val firstName = ObservableField(person.firstName) + val lastName = ObservableField(person.lastName) + val age = ObservableField(person.age.toString()) + + init { + person.addChangeListener { person -> + firstName.set(person.firstName) + lastName.set(person.lastName) + age.set(person.age.toString()) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/list_item.xml b/app/src/main/res/layout/list_item.xml new file mode 100644 index 0000000..7d868e5 --- /dev/null +++ b/app/src/main/res/layout/list_item.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e0dfa6d..2b2ea72 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ DevRealm +