2017-04-07 72 views
0

我想通過點擊按鈕從我的網站獲取JSON數據時,我通過單擊按鈕我收到數據,當我再次點擊按鈕它沒有' t取出舊的數據,是取前這裏是我的代碼,我還附上截圖什麼我收到老Json數據不會消失後得到新

Button Start; 
TextView textView; 
RequestQueue requestQueue; 





@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_live_line); 

    Start = (Button) findViewById(R.id.button); 
    textView = (TextView) findViewById(R.id.textView); 
    requestQueue = Volley.newRequestQueue(this); 

    Start.setOnClickListener(new View.OnClickListener() { 
     @Override 

     public void onClick(View v) { 
      JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "http://www.cricketlinepro.com/newapi.php?method=getRate",(String)null, 
        new Response.Listener<JSONObject>() { 
         @Override 
         public void onResponse(JSONObject response) { 

          try { 

           JSONArray jsonArray = response.getJSONArray("info"); 
           for (int i = 0; i < jsonArray.length(); i++) { 

            JSONObject info = jsonArray.getJSONObject(i); 

            String Rate1 = info.getString("Rate1"); 
            String Rate2 = info.getString("Rate2"); 

            textView.append(Rate1 + " " + Rate2 + " \n"); 

           } 


          } catch (
            JSONException e) 

          { 
           e.printStackTrace(); 
          } 
         } 

        }, 

        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
          Log.e("VOLLEY", "ERROR"); 

         } 
        } 


      ); 
      requestQueue.add(jsonObjectRequest); 

     } 

    }); 

} 

} 

enter image description here

+1

不會消失哪裏?如果你的意思是TextView,這是因爲你正在使用'append()'而不是'setText()' – codeMagic

+0

哦,廢話謝謝你,你救了我的一天 –

+0

你能幫助我一個更多的東西,像是它獲取按鈕點擊它可以在0.5秒後自動獲取? –

回答

0

使用的setText刪除數據,併爲每0.5秒,你在執行代碼可以使用這樣的處理程序。

new Timer().scheduleAtFixedRate(new TimerTask() { 
     @Override public void run() { 
      // Your code 
      getActivity().runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        //You code 
       } 
      }); 
     } 
    }, 0, 500); 

使用處理程序:

final Handler mHandler=new Handler(); 
     Runnable r = new Runnable() { 
      @Override 
      public void run() { 
       // Your Code 
       mHandler.postDelayed(this, 500); 
      } 
     }; 

     mHandler.post(r); 
+0

錯誤:(93,9)錯誤:mHandler是不公開的FragmentActivity;不能從外部包訪問 –

+0

當我使用你的代碼時出現這個錯誤 –

+0

其實我是新來的android開發,你可以在我現有的代碼中添加這個代碼,並轉發給我,這將是如此感激。 –

0

你需要調用textView.setText(Rate1 + " " + Rate2 + " \n"); 而不是textView.append(Rate1 + " " + Rate2 + " \n");爲你添加的retrievied串存在於TextView中已經存在的字符串