2012-01-14 9 views
0

ユーザーがボタンを押したときに、画像を見ることができるアプリケーションがあります。これらの他の画面は他のアクティビティにあります。多くの画像は多くのkbsであり、読み込むには時間がかかるので、ボタンを押して待つ必要があることをユーザーに知らせる何かが必要です。私はスピナーを使ってみましたが、私のxmlでうまくいかなかったので、他に何かを提案できますか?多くのアンドロイドアプリは、最終的な表示がロードされるまで黒い画面を表示するだけです。たとえば、ボタンがバックグラウンドカラーに変更されて、ユーザーがそれを押して待つ必要があることを示唆します。コード内のどこに配置する必要がありますか?ボタンを押した後に待つ画像アイコン

ここに私のコードです。

b4.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View l) { 
        /*ParnassosTheme();*/ 
        Intent i = new IntentScreen.this,OtherScreen.class); 
        Bundle b = new Bundle(); 
        b.putString("id", id); 
        i.putExtras(b); 
        startActivity(i); 
      } 
      }); 

と私の他の画面の活動は

public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
...do things... 

答えて

1

タスクをロードするか、タスクの開始時における進捗ダイアログを表示し、作業が完了したときに、それを却下します。注:正常に動作しますが、onCreateDialog()は既に非推奨ですinfo here。 SDK 11+をターゲットにしている場合は、read hereの代わりにDialogFragmentを使用することを検討してください。

public class OtherScreen extends Activity{ 
    private static final int LOADING_DIALOG_KEY = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     // initialization 

     // show loading dialog 
     showDialog(LOADING_DIALOG_KEY); 

     new LoadDataTask().execute(); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id){ 

     ProgressDialog dialog = null; 

     if (id == LOADING_DIALOG_KEY){ 

      dialog = new ProgressDialog(this); 
      dialog.setTitle("Dialog title"); 
      dialog.setMessage("Data loading..."); 
      dialog.setIndeterminate(true); 
      dialog.setCancelable(false); 
     } 

     return dialog; 
    } 

    private final class LoadDataTask extends 
     AsyncTask<Void, Void, Void> 
    { 

     @Override 
     protected Void doInBackground(Void... params) 
     { 
      // do work here 
      return null; 
     } 

     @Override 
     protected void onPostExecute(Void result) 
     { 
      dismissDialog(LOADING_DIALOG_KEY); 
     } 
    } 
} 
+0

ok私はそれを試み、私は投稿します。これはどういう意味ですか? "注意:これはうまくいきますが、onCreateDialog()は既に非難されている情報です。"そして、私は初期設定セクションに何かを書くべきですか?それがもうサポートされておらず、(3年間のIIRC)それがSDKから削除されるため、非推奨のGoogleによる – ghostrider

+0

はそれを使用しない方が良いことを意味します。初期化セクションでは、通常、アクティビティのコンポーネントを初期化します。このセクションはあなた次第ですが、ProgressDialogを動作させるための余分なものはありません。 – Maxim

+0

私はこれを試して、それは何も変更しません。私がdismissdialogboxを取り除くと、それはever.Soのために読み込みますそれは間違った場所にそれを置いた。どこに?すべてが終わったら? – ghostrider

関連する問題