如何在Android Studio中返回或重用Volley库的响应值?

问题描述 投票:0回答:1
public class MainActivity extends AppCompatActivity {
    private static final String url = "https://www.googleapis.com/books/v1/volumes?q=android&maxResults=1";
    private static String data ="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        final StringRequest request = new StringRequest(url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                data=data + response.substring(0);
                Log.d("CODE1",response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(MainActivity.this,"Something went wrong",Toast.LENGTH_SHORT).show();
            }
        });

        RequestQueue queue = Volley.newRequestQueue(this);
        queue.add(request);

        TextView text = (TextView) findViewById(R.id.text_view);
        text.setText(data);


    }

}

我正在尝试在onCreate函数结尾使用onResponse函数的“ response”值。如您所见,数据已分配给TEXTVIEW,但未显示。如何使用response中的数据传递给其他数据结构,然后用于其他工作?

java android android-volley
1个回答
0
投票

这样使用:

data=data + response.substring(0);
Log.d("CODE1",response);
text.setText(data);

因为此行(setText)在发送请求之前运行。


0
投票

setText方法移至onResponse

您的代码将是这样:

       TextView text = (TextView) findViewById(R.id.text_view);
final StringRequest request = new StringRequest(url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.d("CODE1",response);
                    text.setText(response);
}
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(MainActivity.this,"Something went wrong",Toast.LENGTH_SHORT).show();
            }
        });

        RequestQueue queue = Volley.newRequestQueue(this);
        queue.add(request);
© www.soinside.com 2019 - 2024. All rights reserved.