過去在應用中創建Dialog都是復寫Activity基類中定義的受保護的onCreateDialog()方法,然后使用showDialog()方法以顯示Dialog。但是最近在用API 21進行開發的時候發現這種方法已經過時了,查看API文檔,發現這兩個方法在從API 13開始就被棄用了。。。在網上查了好長時間,看了一些其他人的博客,終於算是搞出了一個Dialog。我所創建的Dialog是最簡單的AlertDialog,界面不需要自己定義的那種o(^▽^)o
下面上代碼。
Dialog helpDialog = new AlertDialog.Builder(ItemDetail.this) .setMessage("ThisIsADialog") .setPositiveButton("確定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(ItemDetail.this,"已確定",Toast.LENGTH_SHORT).show(); }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(ItemDetail.this,"已取消",Toast.LENGTH_SHORT).show(); } }).create(); helpDialog.show();
在這里直接創建一個Dialog對象就可以了,調用show()方法就可以顯示該Dialog。
目前我還只會以這一種方式創建Dialog,在starkoverflow上看到有人說Google官方推薦使用DialogFragment類,我還沒有嘗試過。