问题描述
我的 viewModel 中有这个内部类,我需要去掉 findViewbyId。我正在尝试将数据绑定与 MVVM 一起使用,但这让我很困惑。我正在尝试将一个 bottomSheetDialog 放在我的主要活动中,并且正在为活动广告和对话框使用一个视图模型。我知道您通常会在 .xml 文件中使用 lambda,但是当它发生在 onClick 方法中时我该怎么做?:
public class MyHandlers {
public void onsetGoalButtonClick(View view) {
BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(getApplication(),R.style.BottomSheetDialogTheme);
View bottomSheetView = LayoutInflater.from(getApplication()).inflate(
R.layout.layout_bottom_sheet,(LinearLayout) findViewById(R.id.bottomSheetContainer)
);
bottomSheetDialog.setContentView(bottomSheetView);
bottomSheetDialog.show();
}
}
}
这是我试图充气的 R.id.bottomSheetContainer:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bottomSheetContainer"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bottom_sheet_background">
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
android:text="@string/checkbox1" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
android:text="@string/checkbox2" />
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
android:text="@string/checkbox3" />
</LinearLayout>
这是我的观点:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="com.example.runningapp.MainViewModel" />
<variable name="handlers"
type="com.example.runningapp.MainViewModel.MyHandlers"/>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/runButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="428dp"
android:onClick="@{handlers::onRunButtonClick}"
android:text="@string/run_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/setGoalButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{handlers::onsetGoalButtonClick}"
android:text="@string/goal_button"
tools:layout_editor_absoluteX="145dp"
tools:layout_editor_absoluteY="530dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)