Android Dialog
10950 ワード
请留下文章原典出典:CSDN:http://www.csdn.net雨季o莫忧离:http://blog.csdn.net/luckkof
本文
1.
OKキャンセルダイアログ
使用
AlerDialog
ダイアログの作成
2.
複数のボタン情報ボックス
4.
単一選択リストボックス
mSingleChoiceラジオのIDを記録するために使用
5.
進捗バー
プログレスバーボタンをクリックしてスレッドを1つ開き、読み込みの進捗を計算します.読み込みが100 Progressに終了すると仮定します.100未満のときはスレッドにループ++を行い、読み取りが終了するまでスレッドを停止します.
6.
複数選択リストボックス
MultiChoiceID
複数選択を記録する
id
番号が存在する
ArrayList
中
選択後
add
進む
ArrayList
選択解除後
remove
出る
ArrayList.
7.
カスタムレイアウト
カスタムレイアウトについてはもっと話さなければなりませんが、どうしてもっと話しますか.実はカスタムレイアウトはAndroidの開発において非常に重要です.システムの退屈なインタフェースを使用することなく、開発者にカラフルなActivityを作ることができるからです.カスタムdialogのメリットは何ですか?例えば、開発が長すぎる場合、システムから送信されたブロードキャストを紹介することによってdialogをポップアップする.しかしdialogはactivityに基づいて提示しなければならないactivityがなければプログラムがクラッシュする.だから、カスタムdialogを書いてactivityと定義することができます.このようにdialogを開くブロードキャストを受け取った後、このactivityプログラムを直接起動して正常に動作します~~これがカスタムdialogのメリットです.注:次の例はカスタムdialogを単独でactivityに書いていないだけです.必要なら自分で直してもいいです.
8.
読み込み進捗ボックス
回転中の進捗バーを表示
loading
本文
1.
OKキャンセルダイアログ
使用
AlerDialog
ダイアログの作成
builder.setIcon(R.drawable.icon);
builder.setTitle(" ?");
builder.setPositiveButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//
showDialog(" ");
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//
showDialog(" ");
}
});
builder.create().show();
2.
複数のボタン情報ボックス
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
builder.setIcon(R.drawable.icon);
builder.setTitle(" ");
builder.setMessage(" ?");
builder.setPositiveButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
showDialog(" ");
}
});
builder.setNeutralButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
showDialog(" ");
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
showDialog(" ");
}
});
builder.create().show();
4.
単一選択リストボックス
mSingleChoiceラジオのIDを記録するために使用
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
mSingleChoiceID = -1;
builder.setIcon(R.drawable.icon);
builder.setTitle(" ");
builder.setSingleChoiceItems(mItems, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mSingleChoiceID = whichButton;
showDialog(" id " + whichButton + " , " + mItems[whichButton]);
}
});
builder.setPositiveButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if(mSingleChoiceID > 0) {
showDialog(" " + mSingleChoiceID);
}
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.create().show();
5.
進捗バー
プログレスバーボタンをクリックしてスレッドを1つ開き、読み込みの進捗を計算します.読み込みが100 Progressに終了すると仮定します.100未満のときはスレッドにループ++を行い、読み取りが終了するまでスレッドを停止します.
mProgressDialog = new ProgressDialog(MainDialog.this);
mProgressDialog.setIcon(R.drawable.icon);
mProgressDialog.setTitle(" ");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setMax(MAX_PROGRESS);
mProgressDialog.setButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//
}
});
mProgressDialog.setButton2(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//
}
});
mProgressDialog.show();
new Thread(this).start();
ic void run() {
int Progress = 0;
while(Progress < MAX_PROGRESS) {
try {
Thread.sleep(100);
Progress++;
mProgressDialog.incrementProgressBy(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
6.
複数選択リストボックス
MultiChoiceID
複数選択を記録する
id
番号が存在する
ArrayList
中
選択後
add
進む
ArrayList
選択解除後
remove
出る
ArrayList.
ArrayList <Integer>MultiChoiceID = new ArrayList <Integer>();
view plaincopy to clipboardprint?
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
MultiChoiceID.clear();
builder.setIcon(R.drawable.icon);
builder.setTitle(" ");
builder.setMultiChoiceItems(mItems,
new boolean[]{false, false, false, false, false, false, false},
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int whichButton,
boolean isChecked) {
if(isChecked) {
MultiChoiceID.add(whichButton);
showDialog(" id " + whichButton + " , " + mItems[whichButton]);
}else {
MultiChoiceID.remove(whichButton);
}
}
});
builder.setPositiveButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String str = "";
int size = MultiChoiceID.size();
for (int i = 0 ;i < size; i++) {
str+= mItems[MultiChoiceID.get(i)] + ", ";
}
showDialog(" " + str);
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.create().show();
7.
カスタムレイアウト
カスタムレイアウトについてはもっと話さなければなりませんが、どうしてもっと話しますか.実はカスタムレイアウトはAndroidの開発において非常に重要です.システムの退屈なインタフェースを使用することなく、開発者にカラフルなActivityを作ることができるからです.カスタムdialogのメリットは何ですか?例えば、開発が長すぎる場合、システムから送信されたブロードキャストを紹介することによってdialogをポップアップする.しかしdialogはactivityに基づいて提示しなければならないactivityがなければプログラムがクラッシュする.だから、カスタムdialogを書いてactivityと定義することができます.このようにdialogを開くブロードキャストを受け取った後、このactivityプログラムを直接起動して正常に動作します~~これがカスタムdialogのメリットです.注:次の例はカスタムdialogを単独でactivityに書いていないだけです.必要なら自分で直してもいいです.
AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.test, null);
builder.setIcon(R.drawable.icon);
builder.setTitle(" ");
builder.setView(textEntryView);
builder.setPositiveButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName);
EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord);
showDialog(" :" + userName.getText().toString() + " :" + password.getText().toString() );
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.create().show();
view plaincopy to clipboardprint?
<span style="color:#000000;"><?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:id="@+id/dialog">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:id="@+id/dialogname">
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvUserName"
android:text=" :" />
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/etUserName"
android:minWidth="200dip"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:id="@+id/dialognum"
android:layout_below="@+id/dialogname"
>
<TextView android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/tvPassWord"
android:text=" :" />
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/etPassWord"
android:minWidth="200dip"/>
</LinearLayout>
</RelativeLayout></span>
8.
読み込み進捗ボックス
回転中の進捗バーを表示
loading
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setTitle(" ing");
mProgressDialog.setMessage(" ");
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCancelable(true);
mProgressDialog.show();