Android Dialog

10950 ワード

请留下文章原典出典:CSDN:http://www.csdn.net雨季o莫忧离:http://blog.csdn.net/luckkof
本文
 
Android Dialog
 
 
1.
OKキャンセルダイアログ
Android Dialog
 
 
使用
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.
複数のボタン情報ボックス
Android Dialog
Android Dialog
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.
単一選択リストボックス
Android Dialog
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.
進捗バー
Android Dialog
プログレスバーボタンをクリックしてスレッドを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.
複数選択リストボックス
Android Dialog
Android Dialog
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 Dialog
カスタムレイアウトについてはもっと話さなければなりませんが、どうしてもっと話しますか.実はカスタムレイアウトは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.
読み込み進捗ボックス
h.jpg
 
回転中の進捗バーを表示
loading
mProgressDialog = new ProgressDialog(this); 

mProgressDialog.setTitle("  ing"); 

mProgressDialog.setMessage("        "); 

mProgressDialog.setIndeterminate(true); 

mProgressDialog.setCancelable(true); 

mProgressDialog.show();