2017-08-25 11 views
2
でスピナーに遅れている

私は、Androidアプリを開発していますし、そこに私はFirebase Realtime DatabaseonCreateからロードされますSpinner1とSpinner2にActivitySearch(私の活動の名前).DATAで4 Spinnersを使用する必要がありますSpinner3は静的です(データはアプリケーション自体で提供されます)が、Spinner1で選択された項目に従ってSpinner4がFirebase Realtime Databaseからロードされます。の移行が原因のAndroid

問題は、私は他のどのActivityからActivitySearchに行きますと、その表示されるようにActivitySearchに2-3秒を取っています。

正常ですか?または他の良いプラクティスがいくつかありますか?

どうすればよいですか?

+0

私がこれを避けている理由をここでは禁止しているのですが、実際には答えが必要です。( –

+0

はい、私の喜びです。 –

+0

OK、私はあなたに後でメールをお送りします。あなたのコメントは、あなたが周囲にぶら下がっているアドレスを保持したくない場合に備えています。 – GhostCat

答えて

0

いいえ、正常ではありません。とても速く実行する必要があります。私はoncreate()でスピナーを読み込むコードをすべて書きましたので、FirebaseからAsyncTask()を使用してデータをロードしてくださいもっと。あなたが疑問があるなら、私に尋ねることができます。

private void LoadInBackground() { 
     new AsyncTask<Void, Void, String>() { 
      ProgressDialog pd; 

      @Override 
      protected void onPreExecute() { 
       super.onPreExecute(); 
       pd = new ProgressDialog(MainActivity.this); 
       pd.setMessage("loading.."); 
       pd.show(); 
      } 

      @Override 
      protected String doInBackground(Void... params) { 
       String msg = ""; 
       //Write your code to load data 
       return msg; 
      } 

      protected void onPostExecute(String msg) { 
       super.onPostExecute(msg); 
       if (pd != null) { 
        pd.dismiss(); 
       } 
       Log.d(TAG, "DATA IS LOADED " + msg); 
       //set all the data here to spinners 
      } 
     }.execute(); 
    } 

このように書くと、役立ちます。