Skip to content

Instantly share code, notes, and snippets.

class MainViewModel : ViewModel() {
...
fun onClick() {
val handler = Handler()
handler.postDelayed(runnable, 1500)
val asyncTask = BackGroundTask(eventData)
asyncTask.execute()
}
}
val transformationData: LiveData<String> = Transformations.map(eventData)
{text -> "Transformation Map $text"}
val transformationData2: LiveData<String> = Transformations.switchMap(eventData){
input -> getText(input)
}
private fun getText(text: String): LiveData<String> {
val data = MutableLiveData<String>()
data.value = "Transformation Switch Map $text"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
val binding: ActivityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main)
binding.viewModel = viewModel
viewModel.eventData.observe(this, Observer<String> { text -> text_view_1.text = text })
}
class MainViewModel : ViewModel() {
val eventData by lazy {MutableLiveData<String>()}
private val runnable = Runnable { eventData.value = "Main Thread" }
fun onClick() {
val handler = Handler()
handler.postDelayed(runnable, 1500)
}
...
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable name="viewModel"
type="com.example.livedatasample.viewmodel.MainViewModel"/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android {
...
dataBinding {
enabled true
}
}
...
dependencies {
...
implementation "androidx.lifecycle:lifecycle-viewmodel:2.0.0"
@Rapbong
Rapbong / Inject_Android
Created July 1, 2019 14:21
Reference: Dagger2 document
public class FrombulationActivity extends Activity {
@Inject Frombulator frombulator;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidInjection.inject(this);
}
}
@Rapbong
Rapbong / Inject_raw
Created July 1, 2019 14:19
Dagger2 document
public class FrombulationActivity extends Activity {
@Inject Frombulator frombulator;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// DO THIS FIRST. Otherwise frombulator might be null!
((SomeApplicationBaseType) getContext().getApplicationContext())
.getApplicationComponent()
.newActivityComponentBuilder()
buildscript {
ext.dagger2_version = '2.18'
}
...
apply plugin: 'kotlin-kapt'
...
dependencies {
/* Other Gradle settings */
implementation "com.google.dagger:dagger:$dagger2_version"
implementation "com.google.dagger:dagger-android:$dagger2_version"
implementation "com.google.dagger:dagger-android-support:$dagger2_version"
kapt "com.google.dagger:dagger-compiler:$dagger2_version"
kapt "com.google.dagger:dagger-android-processor:$dagger2_version"