私はアンドロイドアプリで作業しています。私はインテント3にリダイレクトするインテント2を持っていて、時間をかけてテーブルをロードし、 。Androidのインテントの「読み込み:プログレスバー」をデータロードまで
多くのデータがある場合、データロードを取得するのにかなり時間がかかることがあり、空白の画面が表示される時間が増えます。
データが読み込まれるまでローディングバーを表示します。
データが表示されていない場合のみProgrssBarを表示できますか?
私はアンドロイドアプリで作業しています。私はインテント3にリダイレクトするインテント2を持っていて、時間をかけてテーブルをロードし、 。Androidのインテントの「読み込み:プログレスバー」をデータロードまで
多くのデータがある場合、データロードを取得するのにかなり時間がかかることがあり、空白の画面が表示される時間が増えます。
データが読み込まれるまでローディングバーを表示します。
データが表示されていない場合のみProgrssBarを表示できますか?
おそらくあなたの最善の策は、あなたの「intent3」でAsyncTaskを使用することです:
あなたはこのようにそれを行うことができます:
private class performBackgroundTask extends AsyncTask <Void, Void, Void>
{
private ProgressDialog Dialog = new ProgressDialog(ClassName.this);
protected void onPreExecute()
{
Dialog.setMessage("Please wait...");
Dialog.show();
}
protected void onPostExecute(Void unused)
{
try
{
if(Dialog.isShowing())
{
Dialog.dismiss();
}
// do your Display and data setting operation here
}
catch(Exception e)
{
}
@Override
protected Void doInBackground(Void... params)
{
// Do your background data fetching here
return null;
}
}
あなたはおそらく、あなたが開いたときのonCreateでAsyncTaskを実行する必要があります新しいアクティビティは、asynctaskの構造は(グーグルdocから取られた)このようになる、あなたはプログレスバーをincreamentしたい場合は、onProgressUpdateを実装し、doInBackgroundメソッドでpublishProgressを呼び出す必要があることに気づく
private class DownloadFilesTask extends AsyncTask<Void, Integer, Void> {
protected void onPreExecute()
{
// show your progress bar
}
protected Void doInBackground(Void... params) {
// do your work and publish the progress
publishProgress(progress);
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Void result) {
//dismiss your progress bar
}
}
このコードは単なる例に過ぎず、ロジック/コードに合わせる必要があります。
チェックアウト、このシンプルかつ完全なexample
私はすでに活動クラスを拡張していますように私はAsyncTaskを拡張することはできません。 – typedefcoder2
これは内部クラスであると考えられているため、プライベートです。 onCreateでこれを呼び出すことができます。 – Andrei