【发布时间】:2019-02-20 13:53:07
【问题描述】:
我有 RecyclerView 有 60 个项目,进入 RadioGroup 有 2 个 RadioButton ...我有 Fab button 然后点击它,Snack bar 告诉我你没有进入下一页的权限因为您已经检查了所有 60 个无线电组。我在小吃店中设置了操作,而不是了解哪个 RadioGroup 没有被选中......并且 TextColor 的 Uncheck radio group 发生了变化。如何解决?
检查是否所有 RadioButton Check的方法
//Select All Radio Group
public boolean allSelected() {
boolean allChecked = true;
for (Question question : questionList) {
allChecked = question.getSelectedId() != 0;
}
return allChecked;
}
点击工厂按钮
public void onResultClick(View view) {
if (allSelected()) {
startActivity(new Intent(MbtiQuestionActivity.this, ResultActivity.class));
} else {
snackbar =
Snackbar.make(coordinator, R.string.check_all_ques_err, Snackbar.LENGTH_SHORT)
.setAction(R.string.snack_find_unchecked_ques, new View.OnClickListener() {
@Override
public void onClick(View view) {
//here should right the code that uncheck radio group
}
});
ViewCompat.setLayoutDirection(snackbar.getView(), ViewCompat.LAYOUT_DIRECTION_RTL);
snackbar.show();
}
}
问题类
public class Question extends BaseQuestion {
private String questTitle; private String firstQuest; private String secondQuest; private int score = 0; private int firstQuestScore = 2; private int secondQuestScore = 3;
private int selectedId;
public Question(String questTitle, String firstQuest, String secondQuest) {
this.questTitle = questTitle;
this.firstQuest = firstQuest;
this.secondQuest = secondQuest;
}
public Question(){
}
public String getQuestTitle() {
return questTitle; }
public void setQuestTitle(String questTitle) {
this.questTitle = questTitle; }
public String getFirstQuest() {
return firstQuest; }
public void setFirstQuest(String firstQuest) {
this.firstQuest = firstQuest; }
public String getSecondQuest() {
return secondQuest; }
public void setSecondQuest(String secondQuest) {
this.secondQuest = secondQuest; }
public int getScore() {
return score; }
public void setScore(int questNum, int questScore) {
this.score = ((questNum * questScore) + questNum); }
public int getFirstQuestScore() {
return firstQuestScore; }
public void setFirstQuestScore(int firstQuestScore) {
this.firstQuestScore = firstQuestScore; }
public int getSecondQuestScore() {
return secondQuestScore; }
public void setSecondQuestScore(int secondQuestScore) {
this.secondQuestScore = secondQuestScore; }
public void mathScore(int questNum, int questScore) { }
public int getSelectedId() {
return selectedId; }
public void setSelectedId(int selectedId) {
this.selectedId = selectedId; }
}
xml 中的 Fab
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
android:src="@drawable/check_outline"
app:fabSize="normal"
android:onClick="@{handlers::onResultClick}"
android:clickable="true"
android:focusable="true"/>
我使用 DataBinding ...谢谢。
单击“بررسی”并更改 TextColor 或 CardView 背景!(未检查 RadioGroup!)
日志错误:
Process: mbtitest.kiars.me.mbti, PID: 19757
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
at mbtitest.kiars.me.mbti.databinding.QuesItemRowBinding.executeBindings(QuesItemRowBinding.java:196)
at android.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding.java:437)
at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:409)
at android.databinding.ViewDataBinding$7.run(ViewDataBinding.java:194)
at android.databinding.ViewDataBinding$8.doFrame(ViewDataBinding.java:286)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:676)
at android.view.Choreographer.doFrame(Choreographer.java:603)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:859)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5885)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
【问题讨论】:
-
请上传文本颜色变化的截图。
-
好的,我更新帖子
标签: android radio-button floating-action-button android-snackbar android-radiogroup