我正在尝试第一次将“工具栏”与“数据绑定”一起使用,但可能没有在“数据绑定”中看到“工具栏”。我想将数据从editText传递到viewModel,但是viewmodel中的变量仍然为null。 怎么了?
activity_main:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="mainViewModel"
type="com.example.daniellachacz.weatherapp2.viewmodel.MainViewModel">
</variable>
</data>
<RelativeLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".view.MainActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@color/design_default_color_primary_dark"
android:theme="@style/Base.ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:itemIconTint="@color/colorWhite">
<EditText
android:text="@={mainViewModel.city}"
android:id="@+id/city_edit_text"
android:layout_width="200dp"
android:layout_height="40dp"
android:textColor="@color/colorWhite"
android:hint="Search location"
android:textColorHint="@color/colorGrey"
android:background="@android:color/transparent"/>
</androidx.appcompat.widget.Toolbar>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/bottom_navigation"
android:layout_below="@+id/my_toolbar"
android:layout_alignTop="@+id/my_toolbar"
android:layout_marginTop="55dp">
</FrameLayout>
</RelativeLayout>
</layout>
活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding activityMainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main);
final MainViewModel mainViewModel = ViewModelProviders.of(this).get(MainViewModel.class);
activityMainBinding.setMainViewModel(mainViewModel);
androidx.appcompat.widget.Toolbar myToolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(activityMainBinding.myToolbar);
}
答案 0 :(得分:0)
您是否只是尝试 @ {mainViewModel.city}
从=
中删除@={mainViewModel.city}