2017-07-13 11 views
0

新しいアンドロイドスタジオで、私は単純なアプリをVolleyを使用してURLからJSONデータを取得しようとしていますが、良いものはすべて自動更新データjson .amを試してみたいやっても仕事はしない。アンドロイドスタジオ、自動リフレッシュデータjson url 60秒ごと

私のコードいずれかはあなたがそれを行うためにHandlerを使用することができ、私の

package imo.meteoiraq; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.Volley; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.security.Timestamp; 

public class MainActivity extends AppCompatActivity { 
RequestQueue rq; 
TextView timeDesc,tempDesc,windspeedDesc,windguestDesc,humdityDesc; 
    int ages; 
    int temp; 
    int windspeed; 
    int windguest; 
    int humdity; 
    long timeupdate; 

    String url="/stationlookup?station=I1410&units=metric&v=2.0&format=json"; 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     rq= Volley.newRequestQueue(this); 

     timeDesc= (TextView) findViewById(R.id.timeupdateDesc); 
     tempDesc= (TextView) findViewById(R.id.tempid); 
     windspeedDesc= (TextView) findViewById(R.id.windid); 
     windguestDesc= (TextView) findViewById(R.id.windgustid); 
     humdityDesc= (TextView) findViewById(R.id.humdid); 

     sendjsonrequest(); 
    } 
public void sendjsonrequest(){ 
    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
      try { 

       JSONObject stationsJO = response.getJSONObject("stations"); 
       JSONObject I1410JO = stationsJO.getJSONObject("I1410"); 
       temp = I1410JO.getInt("temperature"); 
       windspeed = I1410JO.getInt("wind_speed"); 
       windguest = I1410JO.getInt("wind_gust_speed"); 
       humdity = I1410JO.getInt("humidity"); 
       timeupdate = I1410JO.getLong("updated")* 1000L; 

       tempDesc.setText(Integer.toString(temp)); 
       windspeedDesc.setText(Integer.toString(windspeed)); 
       windguestDesc.setText(Integer.toString(windguest)); 
       humdityDesc.setText(Integer.toString(humdity)); 
       timeDesc.setText(getDate(timeupdate)); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 

     } 
    }); 
    rq.add(jsonObjectRequest); 
} 

    private String getDate(long timeStamp){ 
     try{ 
      DateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss"); 
      Date netDate = (new Date(timeStamp)); 
      return sdf.format(netDate); 
     } 
     catch(Exception ex){ 
      return "xx"; 
     } 
    } 
} 
+0

あなたは60秒ごとに発射要求を叩きたいですか? – sumit

+0

はい私は、アプリとバックaginなしで、自動更新を意味します – aligassan

+0

あなたはアプリとバックからもう一度なしで何を意味するのですか?あなたは明確に説明することができます – sumit

答えて

1

を助けることができるかどうか。例えば `

Handler handler = new Handler(); 
    Runnable runnable = new Runnable() { 
     @Override 
     public void run() { 
      // polling code 
      handler.postDelayed(this, SIXTY_SECONDS); 
     } 
    };Handler.postDelayed(runnable, DELAY_TIME) ;` 
+0

シンボル 'ハンドラ'を解決できません – aligassan

+0

ハンドラのインスタンスを作成する必要があります –

+0

'クラス'実行可能性がありません – aligassan

0

使用するためにこの:

 final Handler handler = new Handler(); 
     final Runnable runnable = new Runnable() { 
      @Override 
      public void run() { 
       sendjsonrequest(); 
       handler.postDelayed(this,6000);//60 second delay 
      } 
     };handler.postDelayed(runnable,Initial_Delay_time); 

・ホープ、このことができます!

+0

ありがとうございます。シンボル 'postDelayed'を解決できません。 – aligassan

+0

import android.os.Handler; android os handler – sumit

+0

コードは正常に動作しますが、アップデートはありません!! ? – aligassan

関連する問題