本文介绍了如何在Dialog中使用数据绑定?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在实现Dialog中的数据绑定时遇到麻烦.有可能吗?
I am having trouble in implementing databinding in a Dialog. Is it possible?
下面是我的xml.
<data> <variable name="olaBooking" type="com.example.myapp.viewmodels.ViewModel" /> </data> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.CardView android:id="@+id/cv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="15dp" android:elevation="4dp" android:padding="15dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimary" android:gravity="center" android:padding="15dp" android:text="OLA Cab Booked !" android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/colorPrimaryDark" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="start|center" android:padding="15dp" android:text="Car Details" /> <View android:layout_width="match_parent" android:layout_height="2dp" android:background="@color/colorPrimaryDark" /> <TextView android:id="@+id/driverName" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="@{olaBooking.driverName}" /> <TextView android:id="@+id/carModel" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="@{olaBooking.getCarName}" /> <TextView android:id="@+id/carNo" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="@{olaBooking.getCabNo}" /> <TextView android:id="@+id/eta" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="5dp" android:text="@{olaBooking.getEta}" /> </LinearLayout> </android.support.v7.widget.CardView> </LinearLayout>
我想在对话框中绑定以上布局.这怎么可能?以下是我尝试过的Java代码,但无法正常工作
I want to bind the above layout in a Dialog. How is it possible? Below is my java code i tried but it's not working
dialog.setContentView(R.layout.dialog_ola_booking_confirmed); DialogOlaBookingConfirmedBinding binding = DataBindingUtil.inflate( LayoutInflater.from(dialog.getContext()), R.layout.dialog_ola_booking_confirmed, (ViewGroup) dialog.findViewById(R.id.cv), false); ViewModel viewModel = new ViewModel(this, event.olaBooking);推荐答案
可以在Dialog中使用数据绑定,首先要使绑定在Dialog上起作用,您应该首先对其进行充气,然后将其传递给setContentView.
It is possible to use databinding in a Dialog, first to get the binding working on your Dialog you should inflate it first and pass it to the setContentView like this.
DialogOlaBookingConfirmedBinding binding = DataBindingUtil.inflate(LayoutInflater.from(getContext()), R.layout. dialog_ola_booking_confirmed, null, false); setContentView(binding.getRoot());然后您可以传递viewModel:
Then you can pass the viewModel:
binding.setViewModel(new ViewModel(this, event.olaBooking));现在您可以看到它正在工作.
And now you can see it working.
更多推荐
如何在Dialog中使用数据绑定?
发布评论