【发布时间】:2020-06-09 16:27:15
【问题描述】:
我有一个测试 json 托管在 https://dkapps54.github.io/jsonTestApp/message.json 我想制作一个带有两个editTexts的应用程序。我希望一个文本替换 json 中的“标题”字段,另一个替换“消息”。这可能吗?
如果是,使用哪个命令来执行此操作? (我正在使用 Volley)
这是我接收消息的代码(即从 Json 请求数据):
package com.example.jsonmessagereceive;
import androidx.appcompat.app.AppCompatActivity;
import android.app.DownloadManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
TextView title;
TextView message;
Button refresh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final RequestQueue requestQueue = Volley.newRequestQueue(this);
title = findViewById(R.id.textView_title);
message = findViewById(R.id.textView_message);
refresh = findViewById(R.id.button_refresh);
refresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String[] titleText = {""};
final String[] messageText = {""};
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "https://dkapps54.github.io/jsonTestApp/message.json",
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
titleText[0] = response.getString("title");
messageText[0] = response.getString("message");
title.setText(titleText[0]);
message.setText(messageText[0]);
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Error in Response!", Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Error by ErrorListener!", Toast.LENGTH_LONG).show();
}
});
requestQueue.add(jsonObjectRequest);
}
});
}
}
【问题讨论】:
-
用用户输入修改 JSON 后,您想对它做什么?
-
@codebod 好吧,这只是一个我在学习时为了好玩而构建的应用程序。基本上会有两个应用程序,一个可以发送特定消息,另一个只能查看该消息。
-
首先创建一个简单的请求,例如developer.android.com/training/volley/simple#simple,然后在 Logcat 中验证响应是否有效。然后展示你所做的事情,我们将从那里得到它。
-
@codebod 我已经知道如何从 Json 请求数据。但是,正如您所说,我构建了首先显示消息的应用程序。请查看已编辑的问题,
-
抱歉,我仍然不清楚您要达到的流量。下一步是用 2 个
EditText视图的内容更改您的JSONObject吗?用户应该按下按钮来更新JSONObject,还是您希望输入文本自动导致该对象被修改?
标签: java android android-studio android-volley