Android 适应任何自定义样式 提示弹出框 Dialog 封装
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android 适应任何样式提示弹出框Dialog 封装
在Android开发中,难免有各种各样的提示框,如加载数据等待框,删除确认框、输入密码提示框等等,这些是完全可以自定义的,这里给出一个框架以及一个示例,帮助你开发任何样式布局的提示框,废话不多说,直接贴代码:
HintDialog.java
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.view.KeyEvent;
import android.view.Window;
public class HintDialog
{
Dialog mDialog = null;
private Context mContext = null;
private IHintDialog mIDialogInstance = null;
/**
* 构造函数
* @param context
*/
public HintDialog(Context context)
{
mContext = context;
mDialog = new AlertDialog(mContext)
{
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK &&
mIDialogInstance != null)
{
mIDialogInstance.onKeyDown(keyCode, event);
return true;
}
return super.onKeyDown(keyCode, event);
}
};
mDialog.setCancelable(false);
mDialog.setCanceledOnTouchOutside(false);
}
/**
*
* @param iLayoutResId 此DIALOG采用的布局文件
* @param interfaceInstance 此DIALOG需要实现的一些接口事件 */
public void showDialog(int iLayoutResId, IHintDialog interfaceInstance)
{
if (mDialog == null || iLayoutResId == 0)
{
return;
}
mIDialogInstance = interfaceInstance;
mDialog.show();
mDialog.setContentView(iLayoutResId);
Window window = mDialog.getWindow();
if (mIDialogInstance != null)
{
mIDialogInstance.showWindowDetail(window);
}
}
/**
* 使dialog消失
*/
public void dismissDialog()
{
if (mDialog != null && mDialog.isShowing())
{
mDialog.dismiss();
}
}
/**
* 确定Dialog是否正在显示
* @return
public boolean isShowing()
{
if (mDialog != null && mDialog.isShowing())
{
return mDialog.isShowing();
}
return false;
}
public interface IHintDialog
{
public void onKeyDown(int keyCode, KeyEvent event);
public void showWindowDetail(Window window);
}
}
HintDialogActivity.java
import com.example.hintdialogdemo.HintDialog.IHintDialog;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class HintDialogActivity extends Activity implements OnClickListener
{
Button btnConfirm = null;
HintDialog mDialog = null;
@Override
public void onCreate(Bundle savedInstanceState)