簡體   English   中英

如何在 android studio 中返回或重用 Volley 庫的響應值?

[英]How to return or reuse response value of Volley library in android studio?

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 function 末尾使用 onResponse function 的“響應”值。 如您所見,數據已分配給 TEXTVIEW 但未顯示。 我們如何將響應中的數據傳遞給其他數據結構,然后用於其他工作?

像這樣使用:

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

因為,這條線(setText)在您發送請求之前運行。 您顯示了空數據。

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM