私は、選択する4つのオプションがあるポップアップまたはダイアログを作成する方法を見つけようとして、あちこち探していました。
この画像はAndroid開発者サイトにあります。
右側のようなものをコーディングする方法を知っている人はいますか?テキストの横にアイコンは必要ありません。4つのオプションから選択できる必要があります。
そこで表示したいオプションでCharSequence
配列を作成し、setItems(CharSequence[], DialogInterface.OnClickListener)
メソッドでAlertDialog.Builder
に配列を渡すことができます。
例:
String[] colors = {"red", "green", "blue", "black"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(colors, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// the user clicked on colors[which]
}
});
builder.show();
出力(Android 4.0.3で):
(背景マップは含まれていません。;))
ポップアップはAlertDialog
にすぎないため、AlertDialog
を作成し、LayoutInflater
を使用して目的のビューを拡張し、AlertDialog
のsetView()
メソッドを使用して拡張ビューを設定するだけです。
代替オプション
これは私の最初の投稿なので、コードを共有できることを楽しみにしています!これは私のために働いた:
OnCreateイベントの上にこれらの2行を配置します
final String[] Options = {"Red", "Blue"};
AlertDialog.Builder window;
これをトリガーするイベントにこのコードを配置します
window = new AlertDialog.Builder(this);
window.setTitle("Pick a color");
window.setItems(Options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(which == 0){
//first option clicked, do this...
}else if(which == 1){
//second option clicked, do this...
}else{
//theres an error in what was selected
Toast.makeText(getApplicationContext(), "Hmmm I messed up. I detected that you clicked on : " + which + "?", Toast.LENGTH_LONG).show();
}
}
});
window.show();
これを試して :
public void onClick(View v){
final String[] fonts = {"Small", "Medium", "Large", "Huge"};
AlertDialog.Builder builder = new AlertDialog.Builder(TopicDetails.this);
builder.setTitle("Select a text size");
builder.setItems(fonts, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if ("Small".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you nailed it", Toast.LENGTH_SHORT).show();
}
else if ("Medium".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you cracked it", Toast.LENGTH_SHORT).show();
}
else if ("Large".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you hacked it", Toast.LENGTH_SHORT).show();
}
else if ("Huge".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you digged it", Toast.LENGTH_SHORT).show();
}
// the user clicked on colors[which]
}
});
builder.show();
}