如何解决如何使用 Android Studio 将 MySQL 表中的行数据存储到 Java 中的数组中
这是我的数据库表。我想根据 courseId、levelID 和 QuestionID 从该表中读取问题文本。 QuestionText 只会读取一次,但由于选项的原因,questionText 在我的数据库中多次出现。并且基于 courseId、levelID、QuestionID 和 AnswerID,它将随机读取 6 个选项,但其中一个选项应该是正确的。从结果行开始,当它是 X 时,它会显示 toast 消息答案是正确的,否则是错误的。 Database Table
这是我的 php 脚本,用于从 phpmyAdmin mysql 数据库和 android 应用程序中获取所有数据。
<?php
require "mathconn.php";
$course = $_GET['CoureseID'];
$level = $_GET['LevelID'];
$question = $_GET['QuestionID'];
$stmt = $conn->prepare("SELECT `CourseID`,`LevelID`,`QuestionID`,`AnswerID`,`Question_txt`,`
Answer_txt`,`Result` FROM `Mathmaster_Main`");
$stmt -> execute();
$stmt -> bind_result($course,$level,$questionId,$answerId,$question,$answer,$result);
$data = array();
while($stmt ->fetch()){
$temp = array();
$temp['CourseID'] = $course;
$temp['LevelID'] = $level;
$temp['QuestionID'] = $questionId;
$temp['AnswerID'] = $answerId;
$temp['Question_txt'] = $question;
$temp['Answer_txt'] = $answer;
$temp['Result'] = $result;
array_push($data,$temp);
}
echo json_encode($data);
?>
这是我基于 Java 的 android studio 代码。我的目标是制作测验应用。
public class PracticeActivity extends AppCompatActivity {
private TextView question;
private TextView timer;
private TextView getQuestion;
private ProgressBar progressBar;
private RadioGroup radioGroup;
//private RadioButton radioButton;
private RadioButton rb1,rb2,rb3,rb4;
private Button confirm;
private String URL = "https://serwer2146584.home.pl/practice.php";
Question questionOption = new Question();
// Local variable
private int questionCounter;
private int questionCountTotal;
private int correct,wrong;
private int courseID,levelID,questionID;
private int answerID,flag;
String val;
// variable for fetching Data from Mysql Database
int course,level,question1,answer;
String question_Txt,answer_Txt,result;
String[] stQ,stAA,stR;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_practice);
// score = findViewById(R.id.text_view_score);
progressBar = findViewById(R.id.text_view_score);
question = findViewById(R.id.text_view_question_count);
timer = findViewById(R.id.text_view_countdown);
getQuestion = findViewById(R.id.text_view_question);
radioGroup = findViewById(R.id.radio_group);
rb1 = findViewById(R.id.radio_button1);
rb2 = findViewById(R.id.radio_button2);
rb3 = findViewById(R.id.radio_button3);
rb4 = findViewById(R.id.radio_button4);
courseID = levelID = questionID = answerID = 1;
flag = 0;
confirm = findViewById(R.id.button_confirm_next);
getQuiz();
// data();
/*confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// getQuiz();
// data();
}
});*/
}
private void getQuiz(){
Retrofit retrofit = new Retrofit.Builder().baseUrl("https://serwer2146584.home.pl/")
.addConverterFactory(GsonConverterFactory.create())
.build();
PlaceHolderApi placeHolderApi = retrofit.create(PlaceHolderApi.class);
Call<List<Question>> call = placeHolderApi.getData();
call.enqueue(new Callback<List<Question>>() {
@Override
public void onResponse(Call<List<Question>> call,retrofit2.Response<List<Question>> response) {
if (!response.isSuccessful()){
Toast.makeText(PracticeActivity.this,"Code: " + response.code(),Toast.LENGTH_SHORT).show();
return;
}
List<Question> questionList = response.body();
for (Question data : questionList) {
course = data.getCourseID();
level = data.getLevelID();
question1 = data.getQuestionID();
answer = data.getQuestionID();
question_Txt = data.getQuestionTxt();
answer_Txt = data.getAnswerTxt();
result = data.getResult();
if (courseID == course && levelID == level){
if (questionID == question1){
getQuestion.setText(question_Txt);
if (answerID == answer){
rb1.setText(answer_Txt);
}
else if (answerID + 1 == answer + 1){
rb2.setText(answer_Txt);
} else if (answerID + 2 == answer + 2){
rb3.setText(answer_Txt);
} else if (answerID + 3 == answer + 3){
rb4.setText(answer_Txt);
}
}
questionID++;
}
}
}
@Override
public void onFailure(Call<List<Question>> call,Throwable t) {
Toast.makeText(PracticeActivity.this,t.getMessage(),Toast.LENGTH_SHORT).show();
}
});
}
}
这是我的activity_practice.xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBackground"
android:padding="16dp"
tools:context=".PracticeActivity">
<ProgressBar
android:id="@+id/text_view_score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="35"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"/>
<TextView
android:id="@+id/text_view_question_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/text_view_score"
android:text="Question: 1/x"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/text_view_countdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="00:30"
android:textColor="@android:color/black"
android:textSize="40sp" />
<TextView
android:id="@+id/text_view_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/radio_group"
android:layout_marginBottom="16dp"
android:text="Here will be the question text"
android:textAlignment="center"
android:textColor="@android:color/black"
android:textSize="20sp" />
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true">
<RadioButton
android:id="@+id/radio_button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 1" />
<RadioButton
android:id="@+id/radio_button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 2" />
<RadioButton
android:id="@+id/radio_button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 3" />
<RadioButton
android:id="@+id/radio_button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 3" />
</RadioGroup>
<Button
android:id="@+id/button_confirm_next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/radio_group"
android:layout_marginTop="16dp"
android:text="Confirm" />
</RelativeLayout>
这是我的应用程序输出。它正在阅读问题文本,只有一种选择。这是因为,我用于每个循环,并且在第一次迭代期间它读取第一个选项。但我的目标是在我的应用程序中读取一次问题文本,并从数据库和 4 个选项中的单选按钮内获取 4 个选项,从 4 个选项中选择 1 个选项应该是正确的。我需要专家帮助来制作这个应用程序。请帮助我正确编写php代码以制作rest api并编写Java代码。 App Output
请帮我制作这个应用程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。