androiddialog創建
㈠ android之EditText輸入錯誤時該怎樣提示用戶
android提示可以使用dialog或者Toast來提示,以下是示例代碼:
1.創建對象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("請輸入"); //設置對話框標題
builder.setIcon(android.R.drawable.btn_star); //設置對話框標題前的圖標
2.創建EditText輸入框
final EditText edit = new EditText(context);
3.將輸入框賦值給Dialog,並增加確定取消按鍵
builder.setView(edit);
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你輸入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了取消", Toast.LENGTH_SHORT).show();
}
});
4.設置常用api,並show彈出
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏蔽其它地方是否隱藏
dialog.show();
㈡ android開發中獲取選中文字以及彈出框
只需要在Textview中增加android:textIsSelectable="true"即可長按彈出復制,如果要彈出對話框,那就要用Dialog,dialog的用法如下:
Android中,在Dialog中增加EditText需要使用view控制項,也可參考附件源代碼。
具體實現代碼:
1.創建對象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("請輸入"); //設置對話框標題
builder.setIcon(android.R.drawable.btn_star); //設置對話框標題前的圖標
2.創建EditText輸入框
final EditText edit = new EditText(context);
3.將輸入框賦值給Dialog,並增加確定取消按鍵
builder.setView(edit);
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你輸入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了取消", Toast.LENGTH_SHORT).show();
}
});
4.設置常用api,並show彈出
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏蔽其它地方是否隱藏
dialog.show();
㈢ android如何創建帶3個按鈕的對話框
1.先在布局界面上,拖進來一個按鈕控制項,並設置顯示的文字,記得保存(Ctrl+S)
之後在代碼界面上定義該按鈕。
2.新建一個按鈕點擊的方法。
onClick(View v) :點擊之後的動作。
3.設置按鈕的點擊事件指向我們新建的點擊方法。
setOnClickListener:設置點擊之後觸發的動作。
4.在onClick里添加彈出對話框的代碼。
AlertDialog:一個對話框類。
MainActivity.this:對話框顯示的位置。
setTitle:設置標題。
setMessage:設置內容。
setPositiveButton:設置對話框的按鈕。
show():顯示對話框。
至此所有代碼已經完成,編譯並生成,在Android安卓虛擬機上顯示如下。
㈣ 彈出全屏dialog怎麼防止android手機狀態欄被頂上去
創建Dialog的方法如下,第一個參數是Context對象,第二個參數是主題文件對應的id
<code avrasm="" class="hljs">TracingDialog dialog=new TracingDialog(MainActivity.this, R.style.kdialog);
dialog.show();</code>
style如下
<code applescript="" class="hljs"><style name="kdialog" parent="@android:style/Theme.Dialog" type="text/css"><item name=android:windowBackground>@android:color/transparent</item>
<item name=android:windowFrame>@null</item>
<item name=android:windowNoTitle>true</item>
<item name=android:windowIsFloating>true</item>
<item name=android:windowIsTranslucent>false</item>
<item name=android:backgroundDimEnabled>false</item></style></code>
現在我們在TracingDialog中增加一個函數,該函數對android4.4及以上版本進行適配使其顯示正常,增加的函數如下
<code avrasm="" class="hljs">private void applyCompat() {
if (Build.VERSION.SDK_INT < 19) {
return;
}
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}</code>
在TracingDialog的onCreate方法中調用以上函數即可,如下
<code class="hljs" cs="">protected void onCreate(Bundle paramBundle) {
applyCompat();
setContentView(R.layout.tracing_dialog);
}</code>
姑且不考慮繼承Dialog這種創建Dialog的方法,沒辦法,歷史遺留問題。Dialog的創建方法官方已經建議使用DialogFragment進行創建了。就這樣,一個函數解決了問題!
㈤ android微信的聊天記錄長按某聊天彈出的頁面是怎樣實現的
Android中應該是用ListView來實現聊天記錄的,長按某個記錄後,如果設置了偵聽器:
setOnItemLongClickListener(OnItemLongClickListener listener);
則listener中的方法: boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) 將被調用,你可以實現這個方法,在其中創建你想要的對話框。
全屏對話框可以這樣實現:
1 如果你請求activity去創建,則showDialog(YOUR_DIALOG_ID);
然後在activity中的
@OverrideprotectedDialog onCreateDialog(int id){//all other dialog stuff (which dialog to display)//this line is what you need:
dialog.getWindow().setFlags(LayoutParams.FLAG_FULLSCREEN,LayoutParams.FLAG_FULLSCREEN);return dialog;
}
2 如果直接創建,則調用:Dialog dialog=newDialog(this,R.style.Theme_Dark_NoTitleBar_FullScreen);
不知道有沒有說清楚。