【发布时间】:2015-11-03 10:13:16
【问题描述】:
我创建了一个自定义类来快速创建 View 对象(基本上它只是一个显示的问题)。示例:
标题:天气
留言:今天天气怎么样?
所以这是我扩展 View 的自定义类:
public class Question extends View {
Context mContext;
public Question(Context context) {
super(context);
mContext = context;
}
public void addQuestion (View rootView, String title, String message) {
// Inflate une question
LinearLayout rootQuestion = (LinearLayout) rootView.findViewById(R.id.activity_formulaire_questions_preliminaires_ll_wrapper);
LayoutInflater questionInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout myQuestion = (LinearLayout) questionInflater.inflate(R.layout.activity_formulaire_question, rootQuestion);
// Assigne la vue au controlleur
TextView tvTitle = (TextView) myQuestion.findViewById(R.id.activity_formulaire_question_title);
TextView tvMessage = (TextView) myQuestion.findViewById(R.id.activity_formulaire_question_message);
// Remplissage des champs textes
tvTitle.setText(title);
tvMessage.setText(message);
}
还有我的片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.activity_formulaire_questions_preliminaires, null);
Question question = new Question(super.getActivity());
question.addQuestion(rootView, "Question 1 Title", "1");
question.addQuestion(rootView, "Question 2 Title", "2");
question.addQuestion(rootView, "Question 3 Title", "3");
question.addQuestion(rootView, "Question 4 Title", "4");
return rootView;
}
但是在启动片段时,它只是正确显示的最后一个问题。
-> 问题 4 标题
-> 4
-> 默认标题
-> -1
-> 默认标题
-> -1
-> 默认标题
-> -1
为什么?我虽然在使用 questionInflater.inflate 时会得到一个新视图,并尊重层次结构“视图 -> 视图组 -> 线性布局”
【问题讨论】:
标签: android android-fragments layout-inflater android-inflate