確認ダイアログ表示
OKとキャンセルを表示させ、選択したボタンの実行の枠組みとなるサンプルです。
package com.example.test.test56;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.RelativeLayout;
//TextViewを使用する宣言
import android.widget.TextView;
//クリックイベント用に追加
import android.view.View.OnClickListener;
//ボタンを宣言
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements OnClickListener {
//setId用の管理番号
private int mNo2;
private int mNo1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
RelativeLayout layout = new RelativeLayout(this);
setContentView(layout);
//座標の初期設定
int x=0;
int y=0;
int width=0;
int height=0;
//配置を設定
x=50;
y=50;
width=350;
height=60;
RelativeLayout.LayoutParams obj1 = null;
obj1=getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
//ボタンの設置
Button btn1=new Button(this);
mNo1 = View.generateViewId();
btn1.setId(mNo1);
btn1.setOnClickListener(this);
btn1.setText("確認ダイアログ表示");
layout.addView(btn1,obj1);
btn1=null;
y+=height+10;
//ラベルを設置
obj1 = getLayoutObject(width, height);
obj1.leftMargin=x;
obj1.topMargin=y;
mNo2= View.generateViewId();
TextView textView=new TextView(this);
textView.setId(mNo2);
textView.setText("ここに結果が表示されます。");
layout.addView(textView, obj1);
textView=null;
}
@Override
//ボタンがクリックされたら実行されます。
public void onClick(View view) {
if(mNo1==view.getId())
{
//確認ダイアログを表示します。
displayConfirmationDialogBox();
}
}
private void displayConfirmationDialogBox()
{
String sTitle="";
String sMessage="";
String sOK="";
String sCancel="";
sTitle="確認";
sMessage="実行してもよろしいですか?\n" +
"よろしければ「はい」を選択してください。";
sOK="はい";
sCancel="キャンセル";
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(sTitle);
alert.setMessage(sMessage);
alert.setPositiveButton(
sOK,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int which)
{
//「はい」を選択した処理を実行
setTextViewText("「はい」を選択しました。");
}
}
);
alert.setNegativeButton(
sCancel,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int which)
{
//「キャンセル」を選択した処理を実行
setTextViewText("「キャンセル」を選択しました。");
}
}
);
alert.create().show();
}
private void setTextViewText(String sData)
{
TextView textView=(TextView)findViewById(mNo2);
textView.setText(sData);
textView=null;
}
//レイアウトを決定するオブジェクトを生成し渡します
private RelativeLayout.LayoutParams getLayoutObject(int width,int height)
{
return new RelativeLayout.LayoutParams(width, height);
}
}
|
AlertDialog.Builderで宣言したオブジェクトに
タイトル
メッセージ
そして、OK、Cancelを表示させる文字列を設定することになります。
OK用のイベントそしてCancel用のイベントを追加します。
OKは「setPositiveButton」、Cancelは「setNegativeButton」を使います。
あとはDialogInterface.OnClickListener内に宣言したonClickイベントに
必要な実装をするだけです。
実行結果
|
|