android答题app,联网从天行网获取诗词问答题目,详细代码
时间: 2024-01-02 15:02:31 浏览: 171
好的,以下是一个简单的Android答题应用,使用天行数据API获取诗词问答题目。
1. 首先,在你的Android项目中添加以下依赖项:
```
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation 'com.google.code.gson:gson:2.8.7'
```
2. 在你的Android项目中创建一个类,用于从天行API获取数据:
```java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class PoetryQuestionAPI {
private static final String BASE_URL = "http://api.tianapi.com/txapi/tangshi/index";
private static final String APP_KEY = "YOUR_APP_KEY";
public static List<Question> getQuestions(int num) throws IOException {
OkHttpClient client = new OkHttpClient();
String url = BASE_URL + "?num=" + num + "&key=" + APP_KEY;
Request request = new Request.Builder().url(url).build();
Response response = client.newCall(request).execute();
String json = response.body().string();
Gson gson = new Gson();
JsonElement element = JsonParser.parseString(json);
JsonObject obj = element.getAsJsonObject();
JsonElement data = obj.get("newslist");
Question[] questions = gson.fromJson(data, Question[].class);
return new ArrayList<Question>(Arrays.asList(questions));
}
}
class Question {
public String question;
public String answer;
}
```
3. 在你的Android项目中创建一个Activity,用于显示题目和答案,并获取数据:
```java
import java.io.IOException;
import java.util.List;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class QuestionActivity extends AppCompatActivity {
private TextView questionView;
private TextView answerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_question);
questionView = findViewById(R.id.question_view);
answerView = findViewById(R.id.answer_view);
new GetQuestionsTask().execute(1);
}
private class GetQuestionsTask extends AsyncTask<Integer, Void, List<Question>> {
@Override
protected List<Question> doInBackground(Integer... params) {
try {
return PoetryQuestionAPI.getQuestions(params[0]);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(List<Question> result) {
if (result != null && result.size() > 0) {
Question question = result.get(0);
questionView.setText(question.question);
answerView.setText(question.answer);
}
}
}
}
```
4. 在你的Android项目中创建一个布局文件,用于显示题目和答案:
```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/question_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:padding="16dp" />
<TextView
android:id="@+id/answer_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:padding="16dp" />
</LinearLayout>
```
5. 在AndroidManifest.xml文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
6. 在AndroidManifest.xml文件中添加以下Activity:
```xml
<activity android:name=".QuestionActivity" />
```
7. 在你的Android应用程序中启动QuestionActivity:
```java
startActivity(new Intent(this, QuestionActivity.class));
```
这样,当你启动你的Android应用程序时,它将从天行API获取一道诗词问答题目并在屏幕上显示。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)