2016-12-13 32 views
1

Androidスタジオを使うのは初めてです。私の質問は、どのように同期応答に非同期応答を変更するかです。私は現在バレーボールのライブラリを使用してJSON形式のデータベースからデータを返しています。非同期応答を同期応答​​にする方法(Java:Androidスタジオ)

私が経験している問題は、そのデータをグラフ形式で表すことです。あなたは、私のコードの構造のために、コンパイラは応答(本質的に私のデータベースからアンドロイドスタジオに送られているデータ)を待ちますが、その待ちとしてコンパイラはコードの他の部分に移動しますグラフを作成し、私のデータベースからのデータをグラフに表します。

しかし、応答を待っているため、グラフにはデータが入力されていないため空です。

private void sendRequest() { 
     System.out.println("Triggering send Request"); 
     StringRequest stringRequest = new StringRequest(JSON_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         showJSON(response); 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(BillReport.this, error.getMessage(), Toast.LENGTH_LONG).show(); 
        } 
       }); 
     RequestQueue requestQueue = Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
     System.out.println("Send Request done"); 
    } 

送信要求メソッドがメインメソッドのグラフの実装の前に呼ばれる:ここ

コードです。

ボトムラインは、応答を待つのではなく、即時応答を得る方法を理解する必要があります。

この投稿を読んでいただきありがとうございます。

+0

"グラフの実装"コードを 'showJSON()'に入れて、データがあるときに実行されるようにします。 – CommonsWare

+0

@CommonsWareありがとう!私がそれをやっている唯一の問題は、それが本当に乱雑に見えるだろうということです。私はスレッドをより長く、応答を取得するのに十分な長さで実行し続けることにもっと目を向けていました。 – HorribleCoder

答えて

0

グラフに値が表示されるのを待つ必要があります。データをボレーにキャッシュし、サーバーのデータが変更されることが予想されない場合に使用することができます。データの取得中に回転する進行状況バーを表示することができます。これは標準的な方法です。

関連する問題