1、先个自己定义的dialog的xml文档,就和普通的界面编写是完全一样的!
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="280dip"
android:layout_height="220dip" >
<ImageView
android:id="@+id/dialog_login_first"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/logo" />
<LinearLayout
android:id="@+id/dialog_login_second"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/dialog_login_first"
android:orientation="horizontal">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="用户名:"
android:textColor="#000000"/>
<EditText
android:id="@+id/dialog_login_name"
android:layout_width="180dip"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:id="@+id/dialog_login_third"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/dialog_login_second"
android:orientation="horizontal">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="密码:"
android:textColor="#000000"/>
<EditText
android:id="@+id/dialog_login_password"
android:layout_marginLeft="13dip"
android:layout_width="180dip"
android:password="true"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="30dip"
android:layout_below="@+id/dialog_login_third"
android:layout_margin="5dip"
android:layout_centerHorizontal="true"
android:orientation="horizontal">
<Button
android:id="@+id/dialog_login_ensure"
android:layout_width="80dip"
android:layout_height="35dip"
style="@style/main_btn"
android:layout_marginLeft="10dip"
android:layout_gravity="center_vertical"
android:text="登陆"/>
<Button
android:id="@+id/dialog_login_cancel"
android:layout_width="80dip"
android:layout_height="35dip"
style="@style/main_btn"
android:layout_marginLeft="10dip"
android:layout_gravity="center_vertical"
android:text="取消"/>
<Button
android:id="@+id/dialog_to_registe"
android:layout_width="80dip"
android:layout_height="35dip"
style="@style/main_btn"
android:layout_marginLeft="10dip"
android:layout_gravity="center_vertical"
android:text="注册"/>
</LinearLayout>
</RelativeLayout>
2、写个类继承Dialog
package com.kunpower.widget;
import com.kunpower.R;
import com.kunpower.RegisteActivity;
import com.kunpower.WelcomeActivity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class LoginDialog extends Dialog implements android.view.View.OnClickListener {
private Button dialog_login_ensure, dialog_login_cancel, dialog_to_registe;
private EditText dialog_login_name, dialog_login_password;
public LoginDialog(Context context, int theme) {
super(context, theme);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_login_layout);
initView();
}
private void initView() {
dialog_login_ensure = (Button) findViewById(R.id.dialog_login_ensure);
dialog_login_ensure.setOnClickListener(this);
dialog_login_cancel = (Button) findViewById(R.id.dialog_login_cancel);
dialog_login_cancel.setOnClickListener(this);
dialog_to_registe = (Button) findViewById(R.id.dialog_to_registe);
dialog_to_registe.setOnClickListener(this);
dialog_login_name = (EditText) findViewById(R.id.dialog_login_name);
dialog_login_password = (EditText) findViewById(R.id.dialog_login_password);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.dialog_login_ensure :
```` break;
case R.id.dialog_login_cancel :
cancel();
break;
case R.id.dialog_to_registe :
cancel();
Intent intent_registe = new Intent();
intent_registe.setClass(getContext(), RegisteActivity.class);
getContext().startActivity(intent_registe);
break;
}
}
}
这里要注意,因为不是activity里所以要用getContext()来代替activity中的this
3、在需要的地方调用
LoginDialog ld = new LoginDialog(BusinessOppActivity.this, R.style.dialog);
ld.show();
其中R.style.dialog为:
<style name="dialog" parent="@android:style/Theme.Dialog" mce_bogus="1">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/dl</item>
<item name="android:backgroundDimEnabled">false</item>
</style>