Skip to content

Instantly share code, notes, and snippets.

@sembozdemir
sembozdemir / build.gradle
Last active November 15, 2016 12:15
ToDoKotlin - app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.sembozdemir.todokotlin"
minSdkVersion 16
@sembozdemir
sembozdemir / MainActivity.kt
Created November 15, 2016 12:27
TodoKotlin- MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
@sembozdemir
sembozdemir / ankodsl.kt
Created November 15, 2016 12:52
Sample Anko DSL
verticalLayout {
val name = editText()
button("Say Hello") {
onClick { toast("Hello, ${name.text}!") }
}
}
@sembozdemir
sembozdemir / build.gradle
Created November 15, 2016 13:04
ToDoKotlin - app/build.gradle after Anko dependencies added
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.sembozdemir.todokotlin"
minSdkVersion 16
@sembozdemir
sembozdemir / MainActivity.kt
Created November 15, 2016 13:09
ToDoKotlin - MainActivity.kt (with Anko DSL)
class MainActivity : AppCompatActivity() {
val todoListAdapter = TodoListAdapter()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
verticalLayout {
recyclerView {
val orientation = LinearLayoutManager.VERTICAL
@sembozdemir
sembozdemir / ToDoListAdapter.kt
Created November 15, 2016 13:18
ToDoKotlin - ToDoListAdapter.kt
class TodoListAdapter(val arrayList: ArrayList<String> = ArrayList<String>())
: RecyclerView.Adapter<TodoListAdapter.ViewHolder>() {
override fun getItemCount(): Int = arrayList.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView = TextView(parent.context).apply {
padding = dip(16)
}
@sembozdemir
sembozdemir / ViewExtension.kt
Created November 15, 2016 13:45
ToDoKotlin - ViewExtensions.kt
fun EditText.asString(): String = this.text.toString()
fun EditText.clear() {
setText("")
}
@sembozdemir
sembozdemir / MainActivityUI.kt
Created November 15, 2016 14:20
ToDoKotlin - MainActivityUI.kt
class MainActivityUI(val todoListAdapter: TodoListAdapter) : AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>) = with(ui) {
verticalLayout {
recyclerView {
val orientation = LinearLayoutManager.VERTICAL
layoutManager = LinearLayoutManager(ctx, orientation, false)
addItemDecoration(DividerItemDecoration(ctx, LinearLayout.VERTICAL))
adapter = todoListAdapter
}.lparams(width = matchParent,
@sembozdemir
sembozdemir / MainActivity.kt
Created November 15, 2016 14:23
TodoKotlin - MainActivity.kt (after extracting UI code)
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MainActivityUI(TodoListAdapter()).setContentView(this)
}
}
@sembozdemir
sembozdemir / ViewExtensions.kt
Created November 15, 2016 14:28
ToDoKotlin - ViewExtensions.kt (only defaultDivider())
fun _RecyclerView.defaultDivider() {
addItemDecoration(DividerItemDecoration(context, LinearLayout.VERTICAL))
}