响应侦听器内部的字符串数组在侦听器类

时间:2017-07-25 08:58:47

标签: java android xml android-volley

我通过JSONObject从远程服务器获取数据。问题是当我尝试将响应字符串保存到字符串数组中以便在响应侦听器外部使用时,字符串数组会提供空值。我应该怎么做才能从远程服务器获取的字符串可以在响应侦听器之外。

主要活动。 java代码在下面

   public class MainActivity extends Activity {
  MySingleton singleton;
    TextView textView;
   TextView textView2;

   Button button;
   RequestQueue rqueue;

final String url="http://www.muftiattaullahmultani.com/greeting.php";

public static int count=0;

public final String[] str=new String[2];

public String s;

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


     textView=(TextView) findViewById(R.id.textView);
    textView2=(TextView) findViewById(R.id.textView2);
 JsonArrayRequest jsonObjectRequest= new 
     JsonArrayRequest(Request.Method.POST, url, null, new 
     Response.Listener<JSONArray>() {

public void onResponse(JSONArray response) {

    while(count<response.length())
    {
        JSONObject object= null;
        try {
            object = response.getJSONObject(count);
            String s = object.getString("id") +"  "+ object.getString("name")+"  " + object.getString("password");
            str[0]=s;
            textView.setText(str[0]);
            count++;
        } catch (JSONException e) {
            e.printStackTrace();
        }


    }

}
   }, new Response.ErrorListener() {
@Override
    public void onErrorResponse(VolleyError error) {
   textView.setText("ERROR");
  }
   });







      MySingleton.getInstance(getApplicationContext()).addToRequestQueue(jsonObjectRequest);

    textView2.setText(str[0]);

}}

TextView 1给出了正确的值,但textview2给出了NuLL值..

1 个答案:

答案 0 :(得分:1)

  

强大的排序功能,可以轻松正确地填充您的UI   数据从网络异步获取。

Volley发出异步请求,这意味着在请求结束之前它不会阻塞主线程,因此textView2.setText将在str数组填满之前执行数据。您需要将其放在onResponse