Android UIシリーズ---Dialogダイアログ
16518 ワード
変換元:http://www.cnblogs.com/xiaoluo501395377/p/3419398.html
この総括は全面的に書いてあるので、私は直接持ってきて、繰り返し車輪を作るのを避けました.の以下の例に加えて、Andorid API Demoにも比較的完全なDialogの例があり、直接持ってきて勉強することもできます.(API Demoのgithubアドレス:https://github.com/appium/android-apidemos)
Androidの開発では、インタフェースにDialogダイアログボックスが表示され、私たちが常に行う必要があります.このエッセイでは、Dialogダイアログボックスという概念を詳しく説明します.異なるスタイルのダイアログボックスを定義することも含まれています.
一、Dialog
まずandroid公式ドキュメントのDialogの紹介を見てみましょう
Dialogは、ユーザーが選択したり、追加の情報を入力したりできるダイアログボックスを画面にポップアップします.ダイアログボックスは、私たちの画面全体にまみれていません.通常、モデルイベントでユーザーが決定してから実行する必要があります.
Dialogクラスはdialogダイアログボックスのベースクラスですが、このクラスを直接使用してdialogダイアログボックスをインスタンス化することは避け、そのサブクラスを使用してダイアログボックスを得る必要があります.
Dialogには多くのサブクラスが実装されているので、Dialogという親を直接使用して構築するのではなく、そのサブクラスをインスタンス化するダイアログボックスを定義します.
二、AlertDialog
今日私たちが重点的に理解しなければならないのはAlertDialogダイアログボックスです.AlertDialogはDialogの直接サブクラスです.
AlertDialogを使用すると、タイトル、最大3つのボタン操作、および選択ボックスのセット、または自分で定義したポップアップボックスを表示できます.
ここでandroidの公式ドキュメントから提供された図を借りて、AlertDialogボックスの構成を見てみましょう.
①領域1は、タイトル名またはアイコンを含むポップアップボックスを定義するヘッダ情報である.
②領域2はAlertDialogダイアログのcontent部分であり、ここではmessage情報を設定したり、選択ボックスのセットを定義したり、独自のレイアウトポップアップボックスを定義したりすることができます.
③エリア3ではActionButtonsセクションを使用します.ここでは操作ボタンを定義できます.
ActionButtonsといえば、ここでは特に注意してください.
AlertDialogでは、定義ボタンはsetXXXXButtonメソッドで作成されます.このうち、3つの異なるアクションButtonsが選択できます.
各action buttonsには最大1つしか表示されません.すなわち、ポップアップ・ダイアログ・ボックスには最大1つのPositiveButtonしか表示されません.
次に、いくつかのAlertDialogダイアログボックスを1つの具体的な例で見てみましょう.
1.警告ボックスがポップアップされ、3つのボタンが選択可能
コードセクションを見てみましょう.
AlertDialogダイアログボックスを作成するには、AlertDialogの内部クラス、すなわちAlertDialogを使用する必要があります.BuilderはAlertDialogのダイアログボックスを構築し、setXXメソッドで表示したい内容を設定します.
私たちは3つのaction buttonsを設定し、各buttonはDialogInterfaceをバインドしています.OnClickListener()のリスニングイベントは、Toastトーストダイアログボックス(これは後述のエッセイで説明します)を通じて、私たちのいくつかの情報をポップアップします.whichメソッドはaction buttonが表すint値を表します.
which=−1はクリックしたのが確定ボタン,−2はクリックしたのがキャンセルボタン,−3はクリックしたのが無視ボタンであることが分かる.
2.ドロップダウンリストポップアップ
キーコードは次のとおりです.
ここではsetItems(CharSequence[]items,DialogInterface.OnClickListener listener)メソッドでドロップダウンリストボックスを設定します.注意:ドロップダウン・リスト・ボックスまたはドロップダウン・マルチ選択ボックスはContentに表示されるため、messageとドロップダウン・リスト・ボックスは同時に存在しません.
DialogInterfaceをバインドすることもできますOnClickListener Listenerは、オプションを選択するとダイアログボックスが消えます.ここのwhichはドロップダウンリストの各オプションのインデックスを表しています.これにより、ユーザーが選択したオプションを簡単に得ることができます.
3.ドロップダウン・ラジオ・ボックスをポップアップ
注意:ドロップダウン・ラジオ・ボックスをポップアップすると、オプションを選択するとダイアログ・ボックスは消えません.ダイアログ・ボックスを消すにはaction buttonをクリックする必要があります.
4.ドロップダウン・ボックスをポップアップ
ドロップダウンマルチ選択ボックスを設定する際に使用されるsetMultiChoiceItems法は,上記のコードで述べた各パラメータの意味を示す.同様に、ドロップダウン・マルチ選択ボックスでは、いずれかのオプションを選択すると、ダイアログ・ボックスは消えず、action buttonをクリックするだけで消えます.
5.カスタムポップアップダイアログ
カスタムポップアップダイアログボックスでは、カスタムレイアウトファイルを自分で指定する必要があります.ユーザー名とパスワードを入力する最も簡単な2つのEditTextを指定します.
dialog.xml
キーコード:
カスタムポップアップボックスを使用すると、まずxmlのレイアウトファイルを作成し、レイアウトを定義する必要があります.レイアウトファイルにButtonボタンを定義する必要はありません.AlertDialogを使用することができます.Builderでaction buttonsを設定します.
ビュービュー=LayoutInflaterでfrom(MainActivity.this).inflate(R.layout.dialog, null); レイアウトファイルを読み込み、Viewオブジェクトを取得し、AlertDialogを通過することができます.BuilderのsetViewメソッドは、カスタムポップアップボックスを設定します.
まとめ:ここまで、基本的にAlertDialogの詳細な説明は終わり、このエッセイは主にDialogポップアップボックスの基本的な概念とAlertDialogというポップアップボックスを詳しく説明し、基本的なポップアップ警告ボックス、ドロップダウンリストボックス、ドロップダウンマルチ選択ボックスなどを定義することを含む.後続のエッセイはAndroidの勉強の少しを記録し続けます.
この総括は全面的に書いてあるので、私は直接持ってきて、繰り返し車輪を作るのを避けました.の以下の例に加えて、Andorid API Demoにも比較的完全なDialogの例があり、直接持ってきて勉強することもできます.(API Demoのgithubアドレス:https://github.com/appium/android-apidemos)
Androidの開発では、インタフェースにDialogダイアログボックスが表示され、私たちが常に行う必要があります.このエッセイでは、Dialogダイアログボックスという概念を詳しく説明します.異なるスタイルのダイアログボックスを定義することも含まれています.
一、Dialog
まずandroid公式ドキュメントのDialogの紹介を見てみましょう
A dialog is a small window that prompts the user to make a decision or enter additional information. A dialog does not fill the screen and is normally used for modal events that require users to take an action before they can proceed.
Dialogは、ユーザーが選択したり、追加の情報を入力したりできるダイアログボックスを画面にポップアップします.ダイアログボックスは、私たちの画面全体にまみれていません.通常、モデルイベントでユーザーが決定してから実行する必要があります.
Dialogクラスはdialogダイアログボックスのベースクラスですが、このクラスを直接使用してdialogダイアログボックスをインスタンス化することは避け、そのサブクラスを使用してダイアログボックスを得る必要があります.
java.lang.Object
↳ android.app.Dialog
Known Direct Subclasses
AlertDialog, CharacterPickerDialog, MediaRouteChooserDialog, MediaRouteControllerDialog, Presentation
Known Indirect Subclasses
DatePickerDialog, ProgressDialog, TimePickerDialog
Dialogには多くのサブクラスが実装されているので、Dialogという親を直接使用して構築するのではなく、そのサブクラスをインスタンス化するダイアログボックスを定義します.
二、AlertDialog
今日私たちが重点的に理解しなければならないのはAlertDialogダイアログボックスです.AlertDialogはDialogの直接サブクラスです.
AlertDialogを使用すると、タイトル、最大3つのボタン操作、および選択ボックスのセット、または自分で定義したポップアップボックスを表示できます.
ここでandroidの公式ドキュメントから提供された図を借りて、AlertDialogボックスの構成を見てみましょう.
①領域1は、タイトル名またはアイコンを含むポップアップボックスを定義するヘッダ情報である.
②領域2はAlertDialogダイアログのcontent部分であり、ここではmessage情報を設定したり、選択ボックスのセットを定義したり、独自のレイアウトポップアップボックスを定義したりすることができます.
③エリア3ではActionButtonsセクションを使用します.ここでは操作ボタンを定義できます.
ActionButtonsといえば、ここでは特に注意してください.
AlertDialogでは、定義ボタンはsetXXXXButtonメソッドで作成されます.このうち、3つの異なるアクションButtonsが選択できます.
1.setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)
OK、 ,
2.setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)
。
3. setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
。
各action buttonsには最大1つしか表示されません.すなわち、ポップアップ・ダイアログ・ボックスには最大1つのPositiveButtonしか表示されません.
次に、いくつかのAlertDialogダイアログボックスを1つの具体的な例で見てみましょう.
1.警告ボックスがポップアップされ、3つのボタンが選択可能
コードセクションを見てみましょう.
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
// AlertDialog.Builder AlertDialog
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
// Title
builder.setIcon(R.drawable.ic_launcher);
// Title
builder.setTitle(" ");
// Content
builder.setMessage(" ?");
// PositiveButton
builder.setPositiveButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(MainActivity.this, "positive: " + which, Toast.LENGTH_SHORT).show();
}
});
// NegativeButton
builder.setNegativeButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(MainActivity.this, "negative: " + which, Toast.LENGTH_SHORT).show();
}
});
// NeutralButton
builder.setNeutralButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(MainActivity.this, "neutral: " + which, Toast.LENGTH_SHORT).show();
}
});
//
builder.show();
}
});
AlertDialogダイアログボックスを作成するには、AlertDialogの内部クラス、すなわちAlertDialogを使用する必要があります.BuilderはAlertDialogのダイアログボックスを構築し、setXXメソッドで表示したい内容を設定します.
私たちは3つのaction buttonsを設定し、各buttonはDialogInterfaceをバインドしています.OnClickListener()のリスニングイベントは、Toastトーストダイアログボックス(これは後述のエッセイで説明します)を通じて、私たちのいくつかの情報をポップアップします.whichメソッドはaction buttonが表すint値を表します.
positive: -1
negative: -2
neutral: -3
which=−1はクリックしたのが確定ボタン,−2はクリックしたのがキャンセルボタン,−3はクリックしたのが無視ボタンであることが分かる.
2.ドロップダウンリストポップアップ
キーコードは次のとおりです.
button2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle(" ");
//
final String[] cities = {" ", " ", " ", " ", " "};
//
builder.setItems(cities, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(MainActivity.this, " :" + cities[which], Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
});
ここではsetItems(CharSequence[]items,DialogInterface.OnClickListener listener)メソッドでドロップダウンリストボックスを設定します.注意:ドロップダウン・リスト・ボックスまたはドロップダウン・マルチ選択ボックスはContentに表示されるため、messageとドロップダウン・リスト・ボックスは同時に存在しません.
DialogInterfaceをバインドすることもできますOnClickListener Listenerは、オプションを選択するとダイアログボックスが消えます.ここのwhichはドロップダウンリストの各オプションのインデックスを表しています.これにより、ユーザーが選択したオプションを簡単に得ることができます.
3.ドロップダウン・ラジオ・ボックスをポップアップ
button3.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle(" ");
final String[] sex = {" ", " ", " "};
//
/**
*
* , ,1 ' '
*
*/
builder.setSingleChoiceItems(sex, 1, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
Toast.makeText(MainActivity.this, " :" + sex[which], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
builder.show();
}
});
注意:ドロップダウン・ラジオ・ボックスをポップアップすると、オプションを選択するとダイアログ・ボックスは消えません.ダイアログ・ボックスを消すにはaction buttonをクリックする必要があります.
4.ドロップダウン・ボックスをポップアップ
button4.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle(" ");
final String[] hobbies = {" ", " ", " ", " "};
//
/**
*
* , null, , ,
* boolean[] , , {true, false, false, true};
*
*/
builder.setMultiChoiceItems(hobbies, null, new DialogInterface.OnMultiChoiceClickListener()
{
StringBuffer sb = new StringBuffer(100);
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked)
{
if(isChecked)
{
sb.append(hobbies[which] + ", ");
}
Toast.makeText(MainActivity.this, " :" + sb.toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
builder.show();
}
});
ドロップダウンマルチ選択ボックスを設定する際に使用されるsetMultiChoiceItems法は,上記のコードで述べた各パラメータの意味を示す.同様に、ドロップダウン・マルチ選択ボックスでは、いずれかのオプションを選択すると、ダイアログ・ボックスは消えず、action buttonをクリックするだけで消えます.
5.カスタムポップアップダイアログ
カスタムポップアップダイアログボックスでは、カスタムレイアウトファイルを自分で指定する必要があります.ユーザー名とパスワードを入力する最も簡単な2つのEditTextを指定します.
dialog.xml
キーコード:
button5.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle(" ");
// LayoutInflater xml View
View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog, null);
// Content
builder.setView(view);
final EditText username = (EditText)view.findViewById(R.id.username);
final EditText password = (EditText)view.findViewById(R.id.password);
builder.setPositiveButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
String a = username.getText().toString().trim();
String b = password.getText().toString().trim();
//
Toast.makeText(MainActivity.this, " : " + a + ", : " + b, Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
}
});
builder.show();
}
});
カスタムポップアップボックスを使用すると、まずxmlのレイアウトファイルを作成し、レイアウトを定義する必要があります.レイアウトファイルにButtonボタンを定義する必要はありません.AlertDialogを使用することができます.Builderでaction buttonsを設定します.
ビュービュー=LayoutInflaterでfrom(MainActivity.this).inflate(R.layout.dialog, null); レイアウトファイルを読み込み、Viewオブジェクトを取得し、AlertDialogを通過することができます.BuilderのsetViewメソッドは、カスタムポップアップボックスを設定します.
まとめ:ここまで、基本的にAlertDialogの詳細な説明は終わり、このエッセイは主にDialogポップアップボックスの基本的な概念とAlertDialogというポップアップボックスを詳しく説明し、基本的なポップアップ警告ボックス、ドロップダウンリストボックス、ドロップダウンマルチ選択ボックスなどを定義することを含む.後続のエッセイはAndroidの勉強の少しを記録し続けます.