9

ProgressDialogをActionBarに移動しようとしています。

私はそれをアクションバーに入れてアニメーション化する方法を知っています(私は思う):

progress.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1" >

    <ProgressBar
        android:id="@+id/progress"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </ProgressBar>

</LinearLayout>

menu.xmlで

<item
    android:id="@+id/Refresh"
    android:icon="@drawable/ic_menu_refresh"
    android:showAsAction="always"
    android:title="Refresh"/>

私の活動で

    case R.id.Refresh:
        item.setActionView(R.layout.progress);
        return true;

onPreExecuteAsyncTask内およびonPostExecuteAsyncTaskの現在のPD(アクティビティ内)は次のとおりです。

// Pre  
dialog = new MyProgressDialog(---.this);
dialog.show(---.this);


// Post    
dialog.dismiss(---.this);

では、これを移動して、アクションバーインジケーターがでアクティブにonPreExecuteなり、次に停止するようにするにはどうすればよいonPostExecuteですか?

編集:私はリフレッシュを探しているだけでなく、アクティビティを最初にロードするとき(またはPDをアクティブ化する必要がある何かをするとき)の「ロード」インジケーターを探しています。デフォルトでは非表示になっているはずです。

4

2 に答える 2

7

私は自分の質問に答えなければならないと思います。これは実はとても簡単でした。

アクティビティで、すぐ上setContentView

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

AsyncTask

// pre
setProgressBarIndeterminateVisibility(true);

// Get Data

// post
setProgressBarIndeterminateVisibility(false);
于 2013-03-04T20:04:16.317 に答える
4

onCreate()で要求する必要がある場合

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
setProgressBarIndeterminateVisibility(true); 

または、サポートパッケージを使用している場合は、

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
setSupportProgressBarIndeterminateVisibility(true); 

問題があればコメントしてください。

于 2013-03-11T13:25:56.790 に答える