Using ProgressDialog in ActionBar (Android)
Asked Answered
A

2

9

I am trying to move a ProgressDialog to my ActionBar.

I know how to put it in the action bar and animate it (I think), like this:

In 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>

in menu.xml

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

in my activity

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

Here is my current PD (in the activity) in onPreExecute and onPostExecute of my AsyncTask:

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


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

So how do I move this so that the action bar indicator is activated in onPreExecute and then stopped in onPostExecute?

EDIT: I am not only looking for a refresh, but a "loading" indicator when you first load an activity (or do something that requires the PD to activate). It should be hidden by default.

Auberta answered 30/9, 2012 at 15:37 Comment(1)
After the edits, the title no longer matches the question, I think.Passbook
A
7

Guess I will have to answer my own question. This was very simple actually.

in Activity, just above setContentView

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

AsyncTask

// pre
setProgressBarIndeterminateVisibility(true);

// Get Data

// post
setProgressBarIndeterminateVisibility(false);
Auberta answered 4/3, 2013 at 20:4 Comment(0)
D
4

if you have to require in onCreate()

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

or if you are using the support package it would be

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

if you finding any trouble then make comment.

Dashboard answered 11/3, 2013 at 13:25 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.