Dialog修改密码的显示方式小巧写法
2014-08-06 15:39
225 查看
private class MyDialog extends Dialog implements View.OnClickListener { private EditText prePassword; private EditText newPassword; private EditText confirmPassword; private Button submit; private Button cancel; Context context; public MyDialog(Context context) { super(context); this.context = context; } public MyDialog(Context context, int theme) { super(context, theme); this.context = context; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.setting_user_password_dialog); prePassword = (EditText) findViewById(R.id.prePassword); newPassword = (EditText) findViewById(R.id.newPassword); confirmPassword = (EditText) findViewById(R.id.confirmPassword); submit = (Button) findViewById(R.id.dialog_button_ok); cancel = (Button) findViewById(R.id.dialog_button_cancel); submit.setOnClickListener(this); cancel.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if (v.equals(submit)) { Toast.makeText(SimpleSettingActivity.this, "you press submit button", Toast.LENGTH_LONG).show(); System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); } else if (v.equals(cancel)) { } } }
怎么样,是不是感觉和Activity有一拼?
网络有云,有图有真相,下面给大家看一下图:
下面就一在实际开发中,的各个文件的创建方式,给大家逐一讲解,这个东东的生成过程,希望能够对Android初学者,有一点帮助。
1.编写承载Dialog的Activity。MainActivity;的布局文件main.xml其代码如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="8dp"
android:background="#FFFFFF"
>
<Button
android:id="@+id/popUpDialog"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="弹出自定义对话框" />
</LinearLayout>
package org.gch.demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
2.编写MainActivity的相关代码(还没有添加MyDialog的内容)
public class MainActivity extends Activity implements OnClickListener{private Button popUpDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
popUpDialog=(Button)findViewById(R.id.popUpDialog);
popUpDialog.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
3.下面定义MyDialog的布局方式文件:setting_user_password_dialog.xml
为了区别EditText是否获得焦点,给EditText的background添加了一个反射器bg_edittext.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/dialog_title_image"
android:gravity="center_vertical|center_horizontal"
android:orientation="vertical"
android:padding="10dp" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="48dp"
android:paddingLeft="30dp"
android:paddingTop="10dp" >
<ImageView
android:id="@+id/dialog_title_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_launch" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:text="修改密码"
android:textColor="#000000"
android:textSize="20sp" />
</RelativeLayout>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#000000" />
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp" >
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center_vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="原密码"
android:textColor="#000000"
android:textSize="14sp" />
<EditText
android:id="@+id/prePassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_weight="1"
android:background="@drawable/bg_edittext"
android:hint="请输入原密码"
android:inputType="textPassword"
android:minHeight="48dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:textColor="#000000"
android:textSize="16sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center_vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码"
android:textColor="#000000"
android:textSize="14sp" />
<EditText
android:id="@+id/newPassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_weight="1"
android:background="@drawable/bg_edittext"
android:hint="请再次输入密码"
android:inputType="textPassword"
android:minHeight="48dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:textColor="#000000"
android:textSize="16sp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center_vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确认密码"
android:textColor="#000000"
android:textSize="14sp" />
<EditText
android:id="@+id/confirmPassword"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_weight="1"
android:background="@drawable/bg_edittext"
android:hint="请输入原密码"
android:inputType="textPassword"
android:minHeight="48dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:textColor="#000000"
android:textSize="16sp" />
</TableRow>
</TableLayout>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#000000" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="bottom|center_horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp" >
<Button
android:id="@+id/dialog_button_ok"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="submit"
android:textSize="16sp"
/>
<Button
android:id="@+id/dialog_button_cancel"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_toRightOf="@id/dialog_button_ok"
android:text="cancel"
android:textSize="16sp" />
</RelativeLayout>
</LinearLayout>
4.bg_edittext.xml源代码:
在bg_edittext.xml文件中使用边框的颜色来区别,EditText是否获得焦点;<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false"
android:drawable="@drawable/contact_edit_edittext_normal" />
<item android:state_focused="true"
android:drawable="@drawable/contact_edit_edittext_focused" />
</selector>
5.Contact_edit_edittext_noraml.xml的源代码:
<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners android:radius="4dp" />
<stroke android:width="1dp" android:color="#DCDCDC" />
</shape>
6.Contact_edit_edittext_focused.xml的源代码:
<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<corners android:radius="4dp" />
<stroke android:width="1dp" android:color="#0000FF" />
</shape>
下面在MainActivity中定义MyDialog(MyDialog作为MainActivity的内部类);
private class MyDialog extends Dialog implements View.OnClickListener {
private EditText prePassword;
private EditText newPassword;
private EditText confirmPassword;
private Button submit;
private Button cancel;
Context context;
public MyDialog(Context context) {
super(context);
this.context = context;
}
public MyDialog(Context context, int theme) {
super(context, theme);
this.context = context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.setting_user_password_dialog);
prePassword = (EditText) findViewById(R.id.prePassword);
newPassword = (EditText) findViewById(R.id.newPassword);
confirmPassword = (EditText) findViewById(R.id.confirmPassword);
submit = (Button) findViewById(R.id.dialog_button_ok);
cancel = (Button) findViewById(R.id.dialog_button_cancel);
submit.setOnClickListener(this);
cancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.equals(submit)) {
Toast.makeText(MainActivity.this,
"you press submit button", Toast.LENGTH_LONG).show();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
} else if (v.equals(cancel)) {
}
}
}
7.下面在values/styles.xml中定义将要显示的MyDialog的风格——setttinguserpassworddialog
<style name="setttinguserpassworddialog" parent="@android:Theme.Dialog"><item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/dialog_title_image</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
8.定义要显示的MyDialog的背景——dialog_title_image.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:bottomLeftRadius="16dp"
android:bottomRightRadius="16dp"
android:topLeftRadius="16dp"
android:topRightRadius="16dp" />
<!-- 描边 -->
<stroke
android:width="1dp"
android:color="#00FF00"/>
<!-- 渐变 -->
<gradient
android:startColor="#FFFFFF"
android:endColor="#00FF00"
android:angle="270"/>
</shape>
9.在MainActivity的onClick方法中添加创建MyDialog的方法
Dialog dialogx = new MyDialog(MainActivity.this,R.style.setttinguserpassworddialog);
// 设置它的ContentView
dialogx.setContentView(R.layout.setting_user_password_dialog);
dialogx.show();
源代码下载地址:http://download.csdn.net/detail/guchuanhang/7719451
相关文章推荐
- 修改ppt另存为网页的mht文件内容,更改其显示方式
- MYSQL修改密码的几种方式
- 前台地址显示布局的由来和修改方式
- ASP.NET方式在工作组内修改帐户密码
- 实现域内用户能够通过网页web方式修改与用户密码
- ASP.NET文本框显示密码 修改密码的时候显示不正常
- 使用Web方式修改域用户密码
- 修改密码时显示,否则隐藏
- 为域用户提供web方式修改密码配置
- MYSQL修改密码的几种方式
- 无法通过用windows方式修改sa的密码,总是提示锁定
- 安装framework以后出现不能显示aspx页面提示用户名和密码不匹配问题的解决chicken修改
- 配置使用web方式修改域用户帐户密码
- MYSQL修改密码的几种方式
- 修改 OleInsertDialog 显示内容
- linux显示方式的修改
- web方式自助修改AD域用户密码
- 修改建立DSO时的显示方式
- 修改BCGCONTROLBAR向导生成的多文档程序默认是MDIChildWnd的MDI_TAB显示方式.