package com.proto.toolsdialog;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.LinearLayout;
import android.view.View;
//import android.view.Window;
public class ToolsDialog extends Activity
implements View.OnClickListener,
DialogInterface.OnClickListener {
private final static int MatchParent=LinearLayout.LayoutParams.MATCH_PARENT;
private final static int WrapContent=LinearLayout.LayoutParams.WRAP_CONTENT;
//ボタンの生成
private Button makeButton(String text,String tag,String params) {
Button button=new Button(this);
button.setText(text);
button.setTag(tag);
button.setOnClickListener(this);
if (params == "MATCH") {
button.setLayoutParams(
new LinearLayout.LayoutParams(MatchParent,WrapContent));
} else {
button.setLayoutParams(
new LinearLayout.LayoutParams(WrapContent,WrapContent));
}
return button;
}
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main); 書き換え
// ウィンドウタイトルの非表示
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// レイアウトの生成
LinearLayout layout=new LinearLayout(this);
layout.setBackgroundColor(Color.WHITE); // 背景色の指定
layout.setOrientation(LinearLayout.VERTICAL); // HORIZONTAL, VERTICAL
setContentView(layout);
// テキストの生成
TextView txtView = new TextView(this);
txtView.setTextColor(Color.MAGENTA);
txtView.setTextSize(16f);
txtView.setText("ダイアログ表示のチェック");
layout.addView(txtView,
new LinearLayout.LayoutParams(MatchParent,WrapContent));
// ボタンの生成
/* (layout.addView(button,
new LinearLayout.LayoutParams(WRAP_CONTENT,WRAP_CONTENT));) */
layout.addView(makeButton("ダイアログ表示ボタン","0","MATCH"));
layout.addView(makeButton("テキストダイアログ表示ボタン","1","MATCH"));
layout.addView(makeButton("チョイスダイアログ表示ボタン","2","MATCH"));
layout.addView(makeButton("マルチチョイスダイアログ表示ボタン","3","MATCH"));
}
// ダイアログの表示
private static void showDialog(final Activity activity,
String title,String text,
DialogInterface.OnClickListener listener) {
AlertDialog.Builder ad=new AlertDialog.Builder(activity);
ad.setTitle(title);
ad.setMessage(text);
ad.setPositiveButton("OK",listener);
ad.create();
ad.show();
}
// テキストダイアログの表示
public static void showTextDialog(final Activity activity,
String title,String text,String hint,
DialogInterface.OnClickListener listener) {
// テキストの編集
EditText editText=new EditText(activity);
editText.setText(text);
editText.setHint(hint);
// ダイアログの設定
AlertDialog.Builder ad=new AlertDialog.Builder(activity);
ad.setTitle(title);
ad.setView(editText);
ad.setPositiveButton("OK",listener);
ad.create();
ad.show();
}
//チョイスダイアログの表示
public void showChoiceDialog(final Activity activity,
String title,String[] items,int itemIdx,
DialogInterface.OnClickListener listener) {
AlertDialog.Builder ad=new AlertDialog.Builder(this);
ad.setTitle(title);
ad.setSingleChoiceItems(items,itemIdx,null);
ad.setPositiveButton("OK",listener);
ad.create();
ad.show();
}
//マルチチョイスダイアログの表示
public void showMultiChoiceDialog(final Activity activity,
String title,String[] items,boolean[] flags,
DialogInterface.OnClickListener listener) {
AlertDialog.Builder ad=new AlertDialog.Builder(this);
ad.setTitle(title);
ad.setMultiChoiceItems(items,flags,null);
ad.setPositiveButton("OK",listener);
ad.create();
ad.show();
}
// ボタンクリックの処理
public void onClick(View view) {
// タグ情報の取得
int tag=Integer.parseInt((String)view.getTag());
// b.setText("ボタン・クリック");
if (tag==0) {
showDialog(this,"ダイアログ","メッセージの表示",this);
}
else if (tag==1) {
showTextDialog(this,"テキストダイアログ","","テキストの入力",this);
}
else if (tag==2) {
showChoiceDialog(this,"チョイスダイアログ",
new String[]{"選択項目1","選択項目2","選択項目3"},
-1,this);
}
else if (tag==3) {
showMultiChoiceDialog(this,"マルチチョイスダイアログ",
new String[]{"選択項目A","選択項目B","選択項目C"},
new boolean[]{false,false,false},this);
}
}
@Override
// ダイアログ・ボタンクリックの処理
public void onClick(DialogInterface arg0, int arg1) {
}
}
|