1

私はしばらくの間、いくつかのSOの投稿を見て、この段階に達しました。私はそれを機能させることに非常に近いと確信していますが、非常に基本的なものが欠けています。

以下のアクティビティのコード スニペット

public class SearchResultsMap extends MapActivity {
....
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        setContentView(R.layout.searchresultsmap);
    ...
        busy = (LinearLayout) findViewById(R.id.busy);
        busy.bringToFront();

        progressBar = (ProgressBar) findViewById(R.id.progressBar) ;
        progressBar.bringToFront() ;

        searchResponse = (HashMap<Integer, CustomJourneyUserInformation>) this.getIntent()
            .getSerializableExtra("searchResponse");
        new GetProviderAndUserDetails(this).execute(null); 
>>edit1  progressBar.setMax(searchResponse.size());
>>edit1  progressBar.setProgress(0) ;
    ...
    }

    //Inner Class, type AsyncTask
    public class GetProviderAndUserDetails extends AsyncTask<String, Integer, Object> {

    public GetProviderAndUserDetails(Activity mapActivity) {
        this.mapActivity = mapActivity;
    }

    protected void onPreExecute() {
        busy.setVisibility(View.VISIBLE);
        setProgressBarVisibility(true) ;
        setProgressBarIndeterminate(true) ;
        setProgressBarIndeterminateVisibility(true) ;
    }
    @Override
    protected void onProgressUpdate(Integer... progress) {
        if (searchActivity != null) {
            searchActivity.setProgress(progress[0]);
>>edit1     progressBar.setProgress(progress[0]) ;
        }
    }
    @Override
    protected Object doInBackground(String... args) {
         ...
         //for loop, i
         publishProgress(i) ;
         //end for loop
         ...
    }
    protected void onPostExecute(Object result) {
        super.onPostExecute(result);
        busy.setVisibility(View.GONE);
        setProgressBarVisibility(false) ;
        setProgressBarIndeterminate(false) ;
        setProgressBarIndeterminateVisibility(false) ;
        ...
    }
}

レイアウト XML ファイル

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/busy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_gravity="center"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:visibility="visible" >

        <ProgressBar
            android:id="@+id/progressBar"
            style="?android:attr/progressBarStyleLarge"
            android:indeterminateOnly="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp" />
    </LinearLayout>

    .....

    <com.google.android.maps.MapView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/searchMap"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/tip"
        android:layout_alignParentTop="true"
        android:apiKey="mykey"
        android:clickable="true" />

    ....

</RelativeLayout>

デバイスの結果: stackoverflow にアップロードできません。いくつかのSOの問題。

検索結果画像

4

2 に答える 2

1

setProgressBarIndeterminate()レイアウトの進行状況バーではなく、アクティビティのタイトルに作用する関連関数を呼び出しています。

progressBar.setIndeterminate()代わりに and friends を使用してください。

編集:不確定な進行状況インジケーターの代わりに進行状況バーが必要な場合は、を使用しますsetIndeterminate(false)

于 2013-04-28T03:09:47.087 に答える