提交 5a6e0e13 编写于 作者: A amitshekhariitbhu

Add some sample data binding in Main Activity

上级 c3c9206a
......@@ -20,6 +20,8 @@ import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import com.mindorks.framework.mvvm.di.ActivityContext;
import com.mindorks.framework.mvvm.di.PerActivity;
import com.mindorks.framework.mvvm.viewmodel.main.MainViewModel;
import dagger.Module;
import dagger.Provides;
......@@ -46,4 +48,10 @@ public class ActivityModule {
AppCompatActivity provideActivity() {
return mActivity;
}
@Provides
@PerActivity
MainViewModel provideMainViewModel() {
return new MainViewModel("MainViewModel");
}
}
......@@ -16,16 +16,45 @@
package com.mindorks.framework.mvvm.view.main;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.mindorks.framework.mvvm.MvvmApp;
import com.mindorks.framework.mvvm.R;
import com.mindorks.framework.mvvm.databinding.ActivityMainBinding;
import com.mindorks.framework.mvvm.di.component.ActivityComponent;
import com.mindorks.framework.mvvm.di.component.DaggerActivityComponent;
import com.mindorks.framework.mvvm.di.module.ActivityModule;
import com.mindorks.framework.mvvm.viewmodel.main.MainViewModel;
import javax.inject.Inject;
public class MainActivity extends AppCompatActivity {
private ActivityComponent mActivityComponent;
@Inject
public MainViewModel mainViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityMainBinding mainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
mActivityComponent = DaggerActivityComponent.builder()
.activityModule(new ActivityModule(this))
.applicationComponent(((MvvmApp) getApplication()).getComponent())
.build();
mActivityComponent.inject(this);
mainBinding.setViewmodel(mainViewModel);
}
@Override
protected void onResume() {
mainViewModel.setText("Amit Shekhar");
super.onResume();
}
}
......@@ -16,9 +16,25 @@
package com.mindorks.framework.mvvm.viewmodel.main;
import android.databinding.BaseObservable;
import android.databinding.ObservableField;
/**
* Created by amitshekhar on 07/07/17.
*/
public class MainViewModel {
public class MainViewModel extends BaseObservable {
public final ObservableField<String> value = new ObservableField<>();
private final String dummyValue;
public MainViewModel(String value) {
this.dummyValue = value;
}
public void setText(String text) {
this.value.set(text);
}
}
......@@ -13,16 +13,34 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mindorks.framework.mvvm.view.main.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<data>
<import type="android.view.View" />
<variable
name="view"
type="com.mindorks.framework.mvvm.view.main.MainActivity" />
<variable
name="viewmodel"
type="com.mindorks.framework.mvvm.viewmodel.main.MainViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewmodel.value}" />
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册