[英]How to parse a single json object value to a button
我想从我的远程json文件中解析一个URL。 我在onCreate中有一个Button代码,我想将json对象中的url解析为我的DynamicButton。
private void parseJSON() {
String url = https://www.example.com/data.json
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("MyDynamicUrl");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject hit = jsonArray.getJSONObject(i);
String myDynamicLink = hit.getString("Link");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
});
mRequestQueue.add(request);
}
我在onCreate中有此按钮,现在我想将myDynamicLink解析为该按钮。 我收到错误消息“无法解析符号'MyDynamicLink'”
DLbtn = findViewById(R.id.DynamicLinkButton);
DLbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = myDynamicLink;
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
我的json文件结构
{
"MyDynamicUrl": [
{"Link":"https://www.myDynamicUrl.com"}
]}
您应该将myDynamicLink定义为方法之外的字段,然后为其设置一个值:
private String myDynamicLink;
private void parseJSON() {
...
myDynamicLink = hit.getString("Link");
...
}
还要注意,该请求是异步发出的(在另一个线程上),这意味着您的按钮可能已被初始化,您可以单击它,但可能仍未收到响应。
另外,您可能开始使用将JSON对象转换为Java对象的库,例如Gson ,它将使您更轻松地解析JSON。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.