flutter实现填空题答题切换,当前一个题答完后将清空后一个题目的输入框,以免同步答案,当点击上一题时,如果此题已作答那么将答案填入对应的题目中
时间: 2024-04-14 09:28:24 浏览: 124
要实现填空题答题切换的功能,你可以使用一个列表来存储题目和答案,并在UI中根据不同的题目显示对应的输入框和答案。当点击上一题或下一题时,根据题目的状态来切换显示。
首先,创建一个类来表示题目和答案的数据模型,例如:
```dart
class Question {
final String question;
String answer;
Question(this.question, this.answer);
}
```
然后,在你的StatefulWidget的状态类中定义一个列表来存储题目和答案,例如:
```dart
List<Question> questions = [
Question('Question 1', ''),
Question('Question 2', ''),
Question('Question 3', ''),
];
int currentQuestionIndex = 0;
```
接下来,在UI中根据当前题目的索引显示对应的题目和答案输入框。例如:
```dart
Column(
children: [
Text(questions[currentQuestionIndex].question),
TextField(
onChanged: (value) {
questions[currentQuestionIndex].answer = value;
},
controller: TextEditingController(text: questions[currentQuestionIndex].answer),
),
RaisedButton(
onPressed: () {
setState(() {
currentQuestionIndex = (currentQuestionIndex - 1) % questions.length;
if (questions[currentQuestionIndex].answer.isNotEmpty) {
questions[currentQuestionIndex].answer = questions[currentQuestionIndex + 1].answer;
}
});
},
child: Text('Previous Question'),
),
RaisedButton(
onPressed: () {
setState(() {
currentQuestionIndex = (currentQuestionIndex + 1) % questions.length;
});
},
child: Text('Next Question'),
),
],
),
```
在上面的代码中,当点击“Previous Question”按钮时,会将当前题目索引减1,并根据当前题目是否已作答来填充上一题的答案。当点击“Next Question”按钮时,会将当前题目索引加1。
注意,需要在build方法中使用TextEditingController来控制答案输入框的初始值和更新值。
希望对你有帮助!如有其他问题,请随时提问。
阅读全文