この前に、私はDialogBuilder
を使用してこのようなAlertDialog
を作成しました
AlertDialog.Builder builder = new AlertDialog.Builder(context);
...
...
AlertDialog dialog = builder.create();
ダイアログビルダーから新しいAppCompatDialog
を作成するにはどうすればよいですか、またはそれを行うための別の新しい同等の方法はありますか?
ちょうど解決策を見つけました。インポートする必要があります
_import Android.support.v7.app.AlertDialog;
_
その後、AppCompatDialog dialog = builder.create()
が機能します。
AlertDialog
を使用する場合は、新しいsupprt v 22.1
をインポートして、次のようなコードを使用します(インポートに注意してください)。
import Android.support.v7.app.AlertDialog
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle);
builder.setTitle("Dialog");
builder.setMessage("Lorem ipsum dolor ....");
builder.setPositiveButton("OK", null);
builder.setNegativeButton("Cancel", null);
builder.show();
場合
Android.support.v7.app.AppCompatDialog
はAndroid.support.v7.app.AlertDialog
の直接の親クラスであり、Android.support.v7.app.AlertDialog
を使用できる場所であればどこでも、Android.support.v7.app.AppCompatDialog
を使用できます。
すべての_Android.app.AlertDialog
_を_Android.support.v7.app.AlertDialog
_に移動しました。
4.Xエミュレーターでいくつかテストした後、単純なダイアログの場合は、インポートを変更するだけで十分であることがわかりました。ただし、複数選択ダイアログの場合は、さらに、マテリアルデザインスタイルのダイアログ(4.X)を取得するためにAppCompatDialog alert = builder.create();
を実行する必要があります。
明確にするために、このような単純なダイアログがある場合:
_import Android.support.v7.app.AlertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
builder.setIcon(resId)
.setTitle(title)
.setMessage(msg)
.setCancelable(isCalncelable)
.setPositiveButton(btn1, listener1);
AlertDialog alert = builder.create();
alert.show();
_
インポートを変更するだけで十分です:)
ただし、複数選択ダイアログの場合は、次のようにAppCompatDialog
を使用する必要があります。
_import Android.support.v7.app.AlertDialog;
import Android.support.v7.app.AppCompatDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Choose something")
.setPositiveButton(...)
.setMultiChoiceItems(mStringArray, mSelectedArray, SomeFragment.this);
AppCompatDialog alert = builder.create();
alert.show();
_
次に、4.XデバイスでNice MaterialDesignの外観を取得します。
今、楽しい部分です!
複数選択ダイアログの場合、5.Xデバイスの場合、ネイティブバージョン(_Android.app.AlertDialog
_)は、左のチェックボックスを-の直後に表示します。 マテリアルデザイン仕様 。ただし、サポートダイアログを使用する場合は、チェックボックスがrightに表示されます。 WTF!
長期的には、Android 5+が市場シェアを獲得するにつれて、ネイティブダイアログに切り替えたいと思うでしょう。