安卓自定義的AlertDialog的一些使用
我們先看下面的彈出框如何實現:
xml檔案:
<RelativeLayout xmlns:android="" xmlns:tools="" android:id="@+id/title" android:layout_width="match_parent" android:layout_height="60dp" > <TextView android:id="@+id/content" android:layout_width="match_parent" android:layout_marginTop="20dp" android:layout_height="60dp" android:layout_marginLeft="25dp" android:text="@string/upgrade_content" android:textColor="#000000" android:textSize="22sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:layout_below="@id/content" android:orientation="horizontal" > <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="15dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="15dp" android:text="@string/remind_me" android:textColor="#000000" android:textSize="14sp" /> </LinearLayout> </RelativeLayout>
程式碼實現:
public AlertDialog getEditCustomDialog(String leftText,android.content.DialogInterface.OnClickListener leftlistener, String rightText, android.content.DialogInterface.OnClickListener rightlistener) { LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate(R.layout.test_dialog1, null); AlertDialog.Builder builder = new AlertDialog.Builder(DialogTest.this); if (!TextUtils.isEmpty(leftText)) { builder.setNegativeButton(leftText, leftlistener); } if (!TextUtils.isEmpty(rightText)) { builder.setPositiveButton(rightText, rightlistener); } builder.setView(view); builder.setTitle("A New Version is Available"); return builder.create(); }
Dialog dialog = getEditCustomDialog("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.d("TAG","<<<<left "); } }, "Upgrade Now", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.d("TAG","<<<<right "); } }); //是否可以點選硬體的back讓彈出框消失 dialog.setCancelable(true); //是否點選彈出框的空白部分可以讓彈出框消失 dialog.setCanceledOnTouchOutside(true);
我們可以在dialog.show以後透過WindowManager來改變框的大小
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes(); lp.width = DialogTest.this.getResources().getDimensionPixelSize(R.dimen.dialog_width); lp.height = DialogTest.this.getResources().getDimensionPixelSize(R.dimen.dialog_height); dialog.getWindow().setAttributes(lp);
程式碼在
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2001/viewspace-2818541/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 安卓自定義優惠券View安卓View
- 直播系統原始碼,簡易的自定義確認彈框AlertDialog原始碼
- 安卓自定義註解支援和示例實現安卓
- 短視訊程式開發,簡易的自定義確認彈框AlertDialog
- 安卓EasyLib的使用安卓
- 安卓Property Animator動畫詳解(二)-自定義屬性安卓動畫
- 線上直播原始碼,自定義AlertDialog設定寬高並去掉預設的邊框原始碼
- jquery自定義事件的使用jQuery事件
- 安卓學習筆記31:使用自定義檢視繪製文字、圖形與影像安卓筆記
- 小程式自定義元件的使用元件
- Angular 自定義管道 pipes 的使用Angular
- springBoot自定義註解的使用Spring Boot
- 使用fnm安裝node,並自定義安裝路徑
- Android自定義View之Canvas的使用AndroidViewCanvas
- Avalonia的自定義使用者元件元件
- Angular rxjs裡自定義operator的使用AngularJS
- keycloak~使用自定義的註冊頁
- 使用Guava的ComparisonChain實現自定義的排序GuavaAI排序
- 在安卓上使用OpenCV的指南 - kdnuggets安卓OpenCV
- AlertDialog的初階操作
- PhpCms自定義欄位的使用說明PHP
- SingleR如何使用自定義的參考集
- 自定義的PopupWindow
- 使用 Docker 安裝 Zabbix,並配置自定義監控項Docker
- GitLab使用自定義埠Gitlab
- Spring 定時器的使用—Xml、Annotation、自定義Spring定時器XML
- Spring 定時器的使用---Xml、Annotation、自定義Spring定時器XML
- 使用ImpromptuInterface反射庫方便的建立自定義DfaGraphWriterUI反射
- Pytest系列(八) - 自定義標記mark的使用
- Vue自定義元件之v-model的使用Vue元件
- Apache Maven Assembly自定義打包外掛的使用ApacheMaven
- RecorderManager安卓仿微信自定義音視訊錄製第三方庫安卓
- Confluence 6 跟蹤你安裝中的自定義修改
- 安卓核心時間使用的是UTC時間安卓
- 高度自定義的STDPickerViewView
- 安卓Toolbar使用 Demo(Kotlin)安卓Kotlin
- MySQL使用之五_自定義函式和自定義過程MySql函式
- 使用AVPlayer自定義支援全屏的播放器(四)播放器