如何从JSON请求方法Android中取出变量

问题描述 投票:0回答:1

我有一个从JSON url获取数据的方法,它工作正常

private void parseJSON() {
...
(some code)
...
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                            String creatorName = response.getString("name");
                                TextView textViewName = findViewById(R.id.text_view_name_detail);
                                textViewName.setText("Creator: "+creatorName);

                            String seeMoreLink = response.getString("see_more_link");


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }

            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });
    mRequestQueue.add(request);
}

但是......我想在void方法之外使用String seeMoreLink,然后将它放入buttonClick方法。

public void seeMoreClicked (View view)
{
    Intent browserIntent = new Intent(Intent.ACTION_VIEW);
    browserIntent.setData(Uri.parse(seeMoreLink));
    startActivity(browserIntent);
}

它只是在json方法之外看不到seeMoreLink变量,我想知道是否可以以一种简单的方式取出该变量(不使用List Views,适配器的e.t.c.)

我对解决它的最简单的方法以及它的制作方式感兴趣(我认为AsyncTask应该工作,但我不想做这个,除非我知道没有一些简单的方法用1代码行,我也尝试将它放入TextView(隐藏和隐形,但应用程序崩溃,我应该在那里使用线程,但我不认为制作隐藏的TextView是正确的方法使用,但也许即时通讯错了,需要专家的意见)。

android json buttonclick
1个回答
1
投票

试试这个:

//Declare a global variable

String link;

:

     try {
String creatorName = response.getString("name");
TextView textViewName = findViewById(R.id.text_view_name_detail);
textViewName.setText("Creator: "+creatorName);

link = response.getString("see_more_link");


 } catch (JSONException e) {
 e.printStackTrace();
                        }

并放置此方法

public void seeMoreClicked (View view)
{
    Intent browserIntent = new Intent(Intent.ACTION_VIEW);
    browserIntent.setData(Uri.parse(link));
    startActivity(browserIntent);
}
© www.soinside.com 2019 - 2024. All rights reserved.