私のアクティビティクラスはAndroid.support.v7.app.ActionBarActivityを拡張します。次のように、ウィンドウ機能を要求し、onCreate()メソッドでsetSupportProgressBarIndeterminateVisibility()を呼び出しています。
_protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_main);
setSupportProgressBarIndeterminateVisibility(true);
}
_
コードの何が問題になっているのか、なぜsetSupportProgressBarIndeterminateVisibility()
によって_Java.lang.NullPointerException
_が発生するのか理解できません。
私のgradle依存関係には次のものが含まれています:
_compile 'com.Android.support:appcompat-v7:21.0.0'
_
API 21でsupport.v7アクションバーの不確定なプログレスバーを使用する方法を知っている人はいますか?
ActionBarの代わりにToolbarを使用し、ProgressBarをツールバーに追加する必要があります。
これは、不確定なProgressBarをツールバーに挿入する簡単な解決策です。まったく難しいことではないことがわかりました:)次のようにProgressBarxml要素をツールバー内に配置するだけです。
<Android.support.v7.widget.Toolbar
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
Android:minHeight="?attr/actionBarSize"
Android:background="?attr/colorPrimary">
<ProgressBar
Android:id="@+id/progress_spinner"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="end"
Android:indeterminate="true"
Android:visibility="gone" />
</Android.support.v7.widget.Toolbar>
そして、AppCompatActivityで、ツールバーを取得した後にProgressBarを取得し、必要に応じてProgressBarを表示または非表示に設定します。
protected void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.toolbar);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
progressBar = (ProgressBar) findViewById(R.id.progress_spinner);
//Make progress bar appear when you need it
progressBar.setVisibility(View.VISIBLE);
//Make progress bar disappear
progressBar.setVisibility(View.INVISIBLE);
}
お役に立てれば :)
編集:最新のAndroidサポートライブラリガイドラインに従って、ActionBarActivityをAppCompatActivityに置き換えました。
あたり このコメント Chris Banes(AppCompatの作者)AppCompat v21の発表投稿:
いずれにせよ、プログレスバーはツールバーでサポートされなくなりました。
理由について:
ツールバーは非常に焦点を絞ったウィジェットだからです。 ProgressBarが必要な場合は、自分でツールバーに追加します(これは単なるViewGroupです)。
公式ドキュメントがまもなくここで更新されるので、より多くの情報を期待しています。