在这篇博客中,你可以了解到下面几项内容:
<1>LayoutInflater的使用
<2>Dialog、AlertDialog与自定义布局
<3>Button的onClick属性
运行,界面就是两个BUtton
自定义Dialog
自定义AlertDialog
完整源码下载地址:download.csdn.net/source/3512363
1.Activity代码
[java]viewplaincopyprint?
1.2.3.4.5.6.7.8.9.
packagemark.zhang;
importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.app.AlertDialog.Builder;importandroid.app.Dialog;importandroid.content.DialogInterface;importandroid.os.Bundle;importandroid.util.Log;
10.importandroid.view.LayoutInflater;11.importandroid.view.View;12.importandroid.view.View.OnClickListener;13.importandroid.view.ViewGroup;14.importandroid.widget.Button;15.16.publicclassCustomDialogActivityextendsActivity{17.18.BuildercustomAlertDialog=null;DialogcustomDialog=null;
19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.w));44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61./***为customAlertDialog这个Button设置监听器**注意:在
xml文件中设置onClick属性要与改名称一致,否则报错*}});//显示对话框customDialog.show();}@OverridepublicvoidonClick(Viewv){Log.d("mark","myselfdialog!");//自定义布局中的ButtonfinalButtonbtn_ok=(Button)customDialog.findViewById(R.id.about_button);btn_ok.setOnClickListener(newOnClickListener(){//该事件被触发/***为customDialog这个Button设置监听器**注意:在xml文件中设置onClick属性要与改名称一致,否则报错**@paramv**/publicvoidcustomDialog(Viewv){customDialog=newDialog(this);customDialog.setContentView(R.layout.about);customDialog.setTitle("自定义Dialog");//该句代码如果设置为false的话,点击"返回"按钮不可以退出该dialog//customDialog.setCancelable(false);//Viewview=inflater.inflate(R.layout.about,(ViewGroup)findViewById(R.id.AboutLinearVie该参数是必需的}@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);LayoutInflaterinflater=null;
62.63.64.65.66.67.68.);69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.}}
*@paramv**/publicvoidcustomAlertDialog(Viewv){customAlertDialog=newAlertDialog.Builder(this);///layout/about.xml自定义布局文件Viewview=inflater.inflate(R.layout.about,(ViewGroup)findViewById(R.id.AboutLinearView)该参数是必需的
customAlertDialog.setTitle("自定义AlertDialog").setView(view);customAlertDialog.setPositiveButton("确定",newDialogInterface.OnClickListener(){
@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){dialog.cancel();}});//自定义布局中的ButtonfinalButtonbtn_ok=(Button)view.findViewById(R.id.about_button);btn_ok.setOnClickListener(newOnClickListener(){//该事件可以被触发
@OverridepublicvoidonClick(Viewv){Log.d("mark","myselfalertDialog!");//其它操作,比如结束该Activity或者启动服务、另一个Activity等}});//显示对话框customAlertDialog.show();
2.main.xml
[html]viewplaincopyprint?
1.2.3.4.5.6.7.8.9.10.11.
12.13.14.15.16.17.18.19.20.
android:onCl