|
テクパー2020 テクニカルヘルパー |
アンドロイドアプリ開発 |
|
◆ ダイアログの操作 ・ ダイアログ、テキストダイアログ、チョイスダイアログ、マルチチョイスダイアログを表示します |
2.「 ToolsDialog 」 を書き換え
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) {
}
}
|
public class ToolsDialog extends Activity
implements View.OnClickListener,
DialogInterface.OnClickListener {
implements View.OnClickListener,DialogInterface.OnClickListener の追加
|
android.view.View.OnClickListener のOnClickListenerインターフェース // クリックリスナーの処理(オーバーライド) public abstract void onClick (View v) |
android.content.DialogInterface.OnClickListener のOnClickListenerインターフェース // クリックリスナーの処理(オーバーライド) public abstract void onClick (DialogInterface dialog, int which) |
android.widget.Activity のActivityクラスのコンスタント RESULT_CANCELED :キャンセル操作 RESULT_OK :成功操作 |
android.app.AlertDialog.Builder のAlertDialog.Builderクラスの生成、指定
public AlertDialog.Builder (Context context)
// タイトルの指定(文字列)
public AlertDialog.Builder setTitle (CharSequence title)
// メッセージの指定(文字列)
public AlertDialog.Builder setMessage (CharSequence message)
// ダイアログ・ボタンの指定(表示文字列,クリック処理)
public AlertDialog.Builder setPositiveButton (
CharSequence text,
DialogInterface.OnClickListener listener)
// アラート・ダイアログの作成
public AlertDialog create ()
// アラート・ダイアログの表示
public AlertDialog show ()
|
android.widget.EditText のEditTextクラスの生成 public EditText (Context context) |
android.widget.TextView のTextViewクラスの指定 // テキストの指定(文字列) public final void setText (CharSequence text) // ヒント表示の指定(文字列)※テキストが空文字列のときに表示する文字列 public final void setHint (CharSequence hint) |
android.app.AlertDialog.Builder のAlertDialog.Builderクラスの指定 // ダイアログ内容の指定(ビュー) public AlertDialog.Builder setView (View view) |
android.app.AlertDialog.Builder のAlertDialog.Builderクラスの指定
// 単一選択項目の指定(項目リスト,チェック状態項目,クリック通知)
public AlertDialog.Builder setSingleChoiceItems (
CharSequence[] items, int checkedItem,
DialogInterface.OnClickListener listener)
// 複数選択項目の指定(項目リスト,チェック状態,クリック通知)
public AlertDialog.Builder setMultiChoiceItems (
CharSequence[] items, boolean[] checkedItems,
DialogInterface.OnMultiChoiceClickListener listener)
|
android.view.View.OnClickListener のOnClickListenerインターフェース // クリックリスナーの処理(オーバーライド) public abstract void onClick (View v) |
android.content.DialogInterface.OnClickListener のOnClickListenerインターフェース // クリックリスナーの処理(オーバーライド) public abstract void onClick (DialogInterface dialog, int which) |
(ダイアログ表示ボタンをクリック)
(テキストダイアログ表示ボタンをクリック)
(チョイスダイアログ表示ボタンをクリック)
(マルチチョイスダイアログ表示ボタンをクリック)
| Copyright (C) 2010 プログラミングのテクニックをあなたに!!(リトル・ヘルパー) All Rights Reserved. |