5

アプリでActionBarSherlockをセットアップし、中間進行状況を使用しようとしています。これを使用しています:

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

私のonCreateで、次に使用します:

    setSupportProgressBarIndeterminateVisibility(true);

それを有効にします。

ICS では問題なく動作しますが、Gingerbread や Froyo ではまったく動作しません。動作させる方法を知っている人はいますか? ありがとう

4

4 に答える 4

13

私はちょうど同じ問題を抱えていました。上記のジェイクの解決策は私にとってそれを修正しませんでした-メソッドは未定義です。

ここのActionBarSherlockのバグリストにJakeが投稿した実用的な解決策を見つけました:

ポスターに対する Jake の応答を参照してください。秘訣は、getSupportActionBar()最初に呼び出して、「ビューの作成をトリガーする」ことです。

だから私のonCreate()方法は:

protected void onCreate(Bundle arg0)
{
    super.onCreate(arg0);

    // allow window to show progress spinner in the action bar
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    getSupportActionBar();
    setSupportProgressBarIndeterminateVisibility(false); 
}

Laux からのコメントに基づく更新:

これが機能するように、インポートが反映されていることを確認してくださいcom.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS

importこのパターンを使用するアプリからのブロックの一部を次に示します。

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.ActionProvider;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
import com.actionbarsherlock.widget.ShareActionProvider;

これは、ABS を使用する場合に覚えておくと非常に良いことです。通常の Android インポートの多くは、代わりに ABS を参照するように更新する必要があります。

インポート ブロックを再度確認するか、完全に削除して Eclipse に再構築させる (CTRL-SHIFT-O) ことをお勧めします。この時点で、Eclipse は、ABS が再宣言するインポートごとにプロンプ​​トを表示します。

これは Glebbbの回答でも説明されています。

于 2012-11-06T08:19:23.420 に答える
4

あなたはおそらく今までにそれを理解していると思いますが、最も可能性の高い原因は、自動的に行うのがとても簡単なので、間違ったファイルを含めたことです。

android.view.Windowのインポートをcom.actionbarsherlock.view.Windowに置き換えると、必要な機能が機能します。

于 2012-12-06T09:30:13.417 に答える
0

に電話する必要がありますsupportRequestWindowFeature

requestWindowFeatureは on の最終メソッドでActivityあり、オーバーライドできませんでした。

于 2012-07-09T20:10:52.967 に答える
-1

Theme.Sherlock.NoActionBarこのアクティビティにアクションバーのテーマを使用していないか、同様のテーマを使用しているかどうかを確認してください。この場合setSupportProgressBarIndeterminateVisibility、メソッドは失敗します

Caused by: java.lang.NullPointerException
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateProgressBars(ActionBarSherlockCompat.java:710)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.onIntChanged(ActionBarSherlockCompat.java:686)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateInt(ActionBarSherlockCompat.java:681)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setFeatureInt(ActionBarSherlockCompat.java:665)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setProgressBarIndeterminateVisibility(ActionBarSherlockCompat.java:637)
at com.actionbarsherlock.app.SherlockFragmentActivity.setSupportProgressBarIndeterminateVisibility(SherlockFragmentActivity.java:282)

Theme代わりに進行状況ダイアログを使用して、読み込みプロセスまたは通常のアクティビティ タイトル バーを示してからsetProgressBarIndeterminateVisibility、古いプラットフォームのメソッドを使用する必要があると思います。

于 2012-08-30T07:36:34.973 に答える