请尊重原创;过后会上传源码,或者联系我
看图效果
不多说,上代码
public void init(){ final View textEntryView=factory.inflate(R.layout.dialog_layout,null); dlg=new AlertDialog.Builder(MainActivity.this).setView(textEntryView).create(); dlg=new AlertDialog.Builder(MainActivity.this,R.style.MyDialog).create(); dlg.setView(mLayout,0,0,0,0); dlg.show(); TextView tvvolam= (TextView)mLayout.findViewById(R.id.volem); tvvolam.setText("4510"); // EditText secondPwd = (EditText) mLayout.findViewById(R.id.etvolam); // final String inputPwd = secondPwd.getText().toString(); canel= (Button) mLayout.findViewById(R.id.dialog_button_cancel); ok= (Button) mLayout.findViewById(R.id.dialog_button_ok); canel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dlg.dismiss(); makeWindowLight(); } }); ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText secondPwd = (EditText) mLayout.findViewById(R.id.etvolam); final String inputPwd = secondPwd.getText().toString(); if("".equals(inputPwd)){ Toast.makeText(MainActivity.this,"不能为空",Toast.LENGTH_LONG).show(); }else{ Toast.makeText(MainActivity.this,"提交成功",Toast.LENGTH_LONG).show(); dlg.dismiss(); makeWindowLight(); } // dlg.dismiss(); //makeWindowLight(); } }); }很简洁的代码
在sytle应用
<style name="MyDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/dialog</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> </style>可以随时修改各种的文字大小信息
三、归纳
可以看到整篇文章的核心就是
public int getIdentifier(String name, String defType, String defPackage)
掌握了这个方法,对于修改 AlertDialog 就不在话下,当然此方法的用处在这里只能算的上是冰上一脚。
需要对 AlertDialog 的各个控件熟练运用就必须知道系统的alert_dialog.xml定义了那些 View,alert_dialog.xml的路径是