9

我正在尝试将 ProgressDialog 移动到我的 ActionBar。

我知道如何将它放在操作栏中并为其设置动画(我认为),如下所示:

进行中.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;

这是我在AsyncTaskonPreExecute中的当前 PD(在活动中) :onPostExecute

// 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 回答