【发布时间】:2019-05-21 05:12:19
【问题描述】:
我想从我的远程 json 文件中解析一个 url。我在 onCreate 中有一个 Button 代码,我想将 url 从我的 json 对象解析到我的 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仅存在于您的parseJason方法中的 for 循环中。此外,该方法不会返回任何内容。这意味着它不存在于 for 循环之外,更不用说方法之外了。 -
那怎么解决这个问题呢?