2017-02-27 3 views
0

応答が時間がかかり、応答が来る前にビューが作成され、データがスピナにロードされていないため、jsonオブジェクトからデータをロードするのに問題がある 誰この問題のアイデア。レスポンスの遅れによりJSONからスピナを読み込むのに問題がある

+0

何かしたことがあれば投稿してください。 –

+0

あなたは1つのことをすることができます。 まず、スピナーを目立たないようにします。そして応答が来たら(AsyncTaskthen on-onPostメソッドを使用している場合)、SpinnerとnotifyDataSetChangedがアダプタに表示されます –

+1

アダプタをスピナーに設定してください。jsonのリクエストに何を使用しているか教えてください。 –

答えて

0

アダプタクラスのコールnotifyDatasetChanged()。私は空の配列をスピナーのアダプターに割り当てていました。応答はサーバーからデータを取得する時間がかかり、配列の前にjson配列を割り当てました。 "mCategoriesNameArray"私はこの配列(私はスピナーのアダプターに割り当てていました)レスポンスリスナーに返信し、正常に機能しました。

mCatAdapter = new ArrayAdapter(this、android.R.layout.simple_spinner_item、mCategoriesNameArray);

0

あなたのサンプルコードを投稿することができれば、私たちがあなたを助けるのに非常に役立つだろうと思います。しかし、とにかく以下を試してみてください

試してみてください。

private class FetchDataTask extends AsyncTask<String, Void, String> { 

    private ProgressDialog dialog = new ProgressDialog(MainActivity.this); 
    @Override 
    protected void onPreExecute() { 
     this.dialog.setMessage("Please wait"); 
     this.dialog.show(); 
    } 

    @Override 
    protected String doInBackground(final String... args) { 
     //Your long waiting job goes here 

     return resultJson 
    } 

    @Override 
    protected void onPostExecute(final String resultJson) { 

     if (dialog.isShowing()) { 
      dialog.dismiss(); 
     } 

     // Populate your spinner 
     populateSpinnerWith(resultJson); 
    } 

使用法:

FetchDataTask task = new FetchDataTask() 
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 
1

あなたが持っているいくつかのコードを投稿するが、しかし、私はあなたのアイデアを与えるようにする必要があります。

In Responce Listnerはjsonオブジェクトを解析し、アイテムをスピナーに追加します。

と私が間違っなっていたところ、私はそれを得た

+1

感謝の兄弟それは本当に私を解決した問題を助けた –

関連する問題