ym-Androidはゼロから(13)(共通ダイアログ、カスタムダイアログ)(新)
28504 ワード
転載はCymのブログから出ていることを明記してください(http://blog.csdn.net/cym492224103)、応援ありがとうございます!前言今日はよく使うポップアップを学びましょう~!ダイアログボックスはグラフィックインタフェースの中で、ダイアログボックスもヒューマンマシンインタラクションの重要な形式であり、プログラムはフレームを通じてユーザーにいくつかの情報のヒントを与えることができ、ユーザーはダイアログボックスとプログラムを通じて簡単なインタラクションを行うことができる.Androidの開発中なので、ダイアログボックスはAndroid.app.Dialogから来ています.ダイアログのサブクラス:ダイアログの一般的な方法:AlertDialog および AlertDialog.Builder Alert 警告の意味を表すので、AlertDialogは警告ボックスの概念を表し、主な機能は警告情報を生成することです.
java.lang.Object
↳
android.app.Dialog
↳
android.app.AlertDialog
AlertDialogはdiallogの直接サブクラスであるため,Dialogクラスの各操作方法を用いることができる.しかし、このクラスの構築方法はすべてProtectedキーワード定義を使用しているので、このキーワードの定義権限の特徴:本クラス、同じパッケージのクラス、異なるパッケージのサブクラスがアクセスできるので、AlertDialogクラスの構築方法が隠されていることを意味します.したがって、AlertDialogダイアログボックスを作成するには、AlertDialog.Builderクラスを使用して完了する必要があります.このクラスの名前から、ダイアログボックス専用の作成クラスであることがわかります.簡単警告ボックス
java.lang.Object
↳
android.app.Dialog
↳
android.app.AlertDialog
AlertDialogはdiallogの直接サブクラスであるため,Dialogクラスの各操作方法を用いることができる.しかし、このクラスの構築方法はすべてProtectedキーワード定義を使用しているので、このキーワードの定義権限の特徴:本クラス、同じパッケージのクラス、異なるパッケージのサブクラスがアクセスできるので、AlertDialogクラスの構築方法が隠されていることを意味します.したがって、AlertDialogダイアログボックスを作成するには、AlertDialog.Builderクラスを使用して完了する必要があります.このクラスの名前から、ダイアログボックス専用の作成クラスであることがわかります.簡単警告ボックス
public class MyDialogDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
Dialog dialog = new AlertDialog.Builder(this)
.setTitle(" ") //
.setMessage(" ") //
.setIcon(R.drawable.pic_m) // LOGO
.create(); //
dialog.show() ; //
}
}
複数種類の操作ボタンpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setTitle(" ?") //
.setMessage(" ?") //
.setIcon(R.drawable.pic_m) // LOGO
.setPositiveButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setNeutralButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).create(); //
dialog.show() ; //
}
}
}
終了ボタンpublic class MyDialogDemo extends Activity {
private ImageButton but = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.but = (ImageButton) super.findViewById(R.id.but) ; //
this.but.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
MyDialogDemo.this.exitDialog() ;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { //
if (keyCode == KeyEvent.KEYCODE_BACK) { //
this.exitDialog() ;
}
return false ;
}
private void exitDialog(){
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setTitle(" ?") //
.setMessage(" ?") //
.setIcon(R.drawable.pic_m) // LOGO
.setPositiveButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyDialogDemo.this.finish() ; //
}
}).setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).create(); //
dialog.show() ; //
}
}
リストダイアログpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
private TextView mych = null ; //
private String fruitData[] = new String[] { " ", " ", " " };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mych = (TextView) super.findViewById(R.id.mych) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setIcon(R.drawable.pic_m)
.setTitle(" ?")
.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setItems(MyDialogDemo.this.fruitData, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyDialogDemo.this.mych
.setText(" :"
+ MyDialogDemo.this.fruitData[which]);
}
}).create() ;
dialog.show() ;
}
}
}
リソースファイル構成オプション以上の例:呼び出しプロファイルデータXml:<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="fruit_labels">
<item> </item>
<item> </item>
<item> </item>
</string-array>
</resources>
public class MyDialogDemo extends Activity {
private Button mybut = null ; //
private TextView mych = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mych = (TextView) super.findViewById(R.id.mych) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setIcon(R.drawable.pic_m)
.setTitle(" ?")
.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setItems(R.array.fruit_labels, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyDialogDemo.this.mych
.setText(" :"
+ MyDialogDemo.this
.getResources()
.getStringArray(
R.array.fruit_labels)[which]);
}
}).create() ;
dialog.show() ;
}
ラジオダイアログpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
private TextView mych = null ; //
private TextView mytext = null ; //
private String fruitData [] = new String[] { " ", " ", " " };
private String fruitDesc [] = new String[] {
" , , , , 、 。",
" ( :Citrullus Lanatus, :Watermelon), , 。",
" , , , , 。"} ;
private int chNum = 0 ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mych = (TextView) super.findViewById(R.id.mych) ; //
this.mytext = (TextView) super.findViewById(R.id.mytext) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setIcon(R.drawable.pic_m)
.setTitle(" ?")
.setPositiveButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyDialogDemo.this.mych
.setText(MyDialogDemo.this.fruitData[MyDialogDemo.this.chNum]); //
}
})
.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setSingleChoiceItems(MyDialogDemo.this.fruitData, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyDialogDemo.this.mytext
.setText(MyDialogDemo.this.fruitDesc[which]);
MyDialogDemo.this.chNum = which ; //
}
}).create() ;
dialog.show() ;
}
}
}
チェックボックスダイアログpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
private TextView mych = null ; //
private String fruitData [] = new String[] { " ", " ", " " };
private boolean chData[] = new boolean[] { true, true, false };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mych = (TextView) super.findViewById(R.id.mych) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setIcon(R.drawable.pic_m)
.setTitle(" ?")
.setPositiveButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setMultiChoiceItems(MyDialogDemo.this.fruitData,
MyDialogDemo.this.chData,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {
for (int x = 0; x < MyDialogDemo.this.fruitData.length; x++) {
if(x == which && isChecked) { //
MyDialogDemo.this.mych
.append(MyDialogDemo.this.fruitData[x]
+ "、");
}
}
}
}).create();
dialog.show() ;
}
}
}
カスタムダイアログpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
LayoutInflater factory = LayoutInflater.from(MyDialogDemo.this) ;
View myView = factory.inflate(R.layout.login, null) ;
Dialog dialog = new AlertDialog.Builder(MyDialogDemo.this)
.setIcon(R.drawable.pic_m)
.setTitle(" ")
.setPositiveButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setView(myView).create();
dialog.show() ;
}
}
}
日付ダイアログボックスpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Dialog dialog = new DatePickerDialog(MyDialogDemo.this,new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
TextView text = (TextView) MyDialogDemo.this.findViewById(R.id.txt) ;
text.setText(" :" + year + "-" + monthOfYear + "-" + dayOfMonth) ;
}
},1981,8,19) ; // 、 、
dialog.show() ; //
}
}
}
時間ダイアログボックスpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
Dialog dialog = new TimePickerDialog(MyDialogDemo.this,new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView text = (TextView) MyDialogDemo.this.findViewById(R.id.txt) ;
text.setText(" :" + hourOfDay + ":" + minute) ;
}
},19,20,true) ;
dialog.show() ; //
}
}
}
進捗ダイアログボックスpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
final ProgressDialog proDia = ProgressDialog.show(MyDialogDemo.this,
" ", " ...");
new Thread(){
public void run(){ //
try {
Thread.sleep(3000) ; //
} catch (Exception e) {
} finally {
proDia.dismiss() ; //
}
}
}.start() ;
proDia.show() ; //
}
}
}
構築による進捗ダイアログボックスpublic class MyDialogDemo extends Activity {
private Button mybut = null ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
final ProgressDialog proDia = new ProgressDialog(MyDialogDemo.this) ;
proDia.setTitle(" ") ;
proDia.setMessage(" ") ;
proDia.onStart() ; //
new Thread(){
public void run(){ //
try {
Thread.sleep(3000) ; //
} catch (Exception e) {
} finally {
proDia.dismiss() ; //
}
}
}.start() ;
proDia.show() ; //
}
}
}
水平バー進捗public class MyDialogDemo extends Activity {
private Button mybut = null ; //
private static final int MAX_PROGRESS = 100 ; //
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); //
this.mybut = (Button) super.findViewById(R.id.mybut) ; //
this.mybut.setOnClickListener(new OnClickListenerImpl()) ; //
}
private class OnClickListenerImpl implements OnClickListener {
@Override
public void onClick(View view) {
final ProgressDialog proDia = new ProgressDialog(MyDialogDemo.this) ;
proDia.setTitle(" ") ;
proDia.setMessage(" ") ;
proDia.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) ; //
proDia.setMax(MAX_PROGRESS) ; //
proDia.setProgress(30) ; // 30
proDia.setButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
proDia.dismiss() ; //
}
}) ;
proDia.setButton2(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}) ;
proDia.onStart() ; //
new Thread(){
public void run(){ //
for (int x = 0; x < MAX_PROGRESS; x++) {
try {
Thread.sleep(500); //
} catch (Exception e) {
}
proDia.incrementProgressBy(1) ;
}
proDia.dismiss() ;
}
}.start() ;
proDia.show() ; //
}
}
授業後の問題ダイアログボックスの作成にはどのようなステップがありますか?1ビルダーの作成 2属性2.1の設定 ヘッド:タイトル、アイコン2.2 ボディ:表示内容2.3末尾:ボタン3 dialogを作成する 4 dialogがカスタムダイアログボックスを作成する方法を表示しますか?レイアウトファイルxmlを作成レイアウトローダ用レイアウトローダロードレイアウトsetView()を作成し、表示します.