【发布时间】:2020-04-07 12:26:06
【问题描述】:
我正在尝试将一些单选按钮添加到卡片视图中。这是我的代码:
MainActivity.java
cardView = findViewById(R.id.card_view);
mGameViewModel.setUpGame().observe(this,this::loadRound);
private void loadRound(List<Smiley> smileys) {
if (smileys == null) {
return;
}
mAnswersView.loadAnswers(smileys, cardView);
mGameViewModel.startNewGameRound();
}
AnswerView
public void loadAnswers(List<Smiley> smileys, CardView cardView) {
if (smileys == null) {
return;
}
removeAllViews();
LayoutInflater inflater = LayoutInflater.from(getContext());
for (Smiley smiley : smileys) {
RadioButton button = (RadioButton) inflater.inflate(R.layout.answer_item, this, false);
button.setText(smiley.getName());
button.setTag(R.string.answer_tag, smiley.getCode());
cardView.addView(button);
}
}
但这似乎不起作用。请问有什么办法吗?
编辑: 这里的问题是我尝试创建的单选按钮没有显示。我已经进行了一些调试,并且在 addView 方法之前调用了所有方法。但是当我查看设备时,没有“扩展”视图,在这种情况下,根本没有单选按钮。
【问题讨论】:
-
在此处传递 'cardView' 而不是 'this' 并尝试:inflater.inflate(R.layout.answer_item, cardView, false);
-
还是一样的:(
-
解释发生了什么。它崩溃了吗?或者屏幕上什么也没有发生?并且,添加日志或进行调试并检查是否调用了 loadRound。检查收到的列表笑脸的大小。将您的布局 R.layout.answer_item 放入示例活动中并检查它是否正确。
-
我已经编辑了我的帖子,谢谢
-
检查您是否使用布局 R.layout.answer_item 作为活动的布局,如果它显示单选按钮。如果不是,则问题出在您的布局中。