1、自定义一个弹出框的布局dialogs

<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="match_parent"    android:background="@color/transparent"    android:gravity="center" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginLeft="20dp"        android:layout_marginRight="20dp"        android:background="@drawable/dialog_bg_filletd"        android:orientation="vertical" >        <TextView            android:id="@+id/dialog_text"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="30dp"            android:gravity="center"            android:paddingLeft="20dp"            android:paddingRight="20dp"            android:textColor="@color/black"            android:textSize="15sp" />        <View            android:layout_width="match_parent"            android:layout_height="1px"            android:layout_marginTop="30dp"            android:background="@color/line" />        <LinearLayout            android:layout_width="match_parent"            android:layout_height="50dp"            android:orientation="horizontal" >            <Button                android:id="@+id/dialog_cancel"                android:layout_width="0dp"                android:layout_height="match_parent"                android:layout_weight="1"                android:background="@drawable/dialog_click"                android:gravity="center"                android:text="取消"                android:textColor="@color/dialog_text_color" />            <View                android:id="@+id/view_line"                android:layout_width="1px"                android:layout_height="match_parent"                android:background="@color/line" />            <Button                android:id="@+id/dialog_ok"                android:layout_width="0dp"                android:layout_height="match_parent"                android:layout_weight="1"                android:background="@drawable/dialog_click"                android:gravity="center"                android:text="确定"                android:textColor="@color/dialog_text_color" />        </LinearLayout>    </LinearLayout></LinearLayout>
2、自定义弹出框的dialog

package com.sunday.mycommondialog;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;/** * 自定弹出框 */public class CommonDialog extends Dialog implementsandroid.view.View.OnClickListener {Context context;/** * @Fields dialog_cancel : 按钮 */private Button dialog_cancel;/** * @Fields dialog_ok:确定按钮 */private Button dialog_ok;private View view_line;private Boolean bool;private TextView dialog_text;private android.view.View.OnClickListener btnOnClick;/** * @Description: 可以自定义button事件 * @param @param btnOnClick * @return void * @throws * @author Sunday */public void setBtnOnClick(android.view.View.OnClickListener btnOnClick) {this.btnOnClick = btnOnClick;dialog_ok.setOnClickListener(btnOnClick);}public void setBtnOkClick(String text,android.view.View.OnClickListener btnOnClick) {this.btnOnClick = btnOnClick;dialog_ok.setText(text);dialog_ok.setOnClickListener(btnOnClick);}public CommonDialog(Context context) {super(context, R.style.SundayDialogs);this.context = context;bool = true;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.dialogs);init();setCancel(bool, "");}void init() {view_line = findViewById(R.id.view_line);dialog_ok = (Button) findViewById(R.id.dialog_ok);dialog_text = (TextView) findViewById(R.id.dialog_text);dialog_cancel = (Button) findViewById(R.id.dialog_cancel);}/** * @Description: 是否显示取消按钮 * @return void * @throws * @author Sunday */public void setCancel(Boolean boole, String message) {if (boole) {dialog_cancel.setVisibility(View.VISIBLE);view_line.setVisibility(View.VISIBLE);dialog_cancel.setOnClickListener(this);} else {dialog_cancel.setVisibility(View.GONE);view_line.setVisibility(View.GONE);}if (null != btnOnClick) {dialog_ok.setOnClickListener(btnOnClick);} else {dialog_ok.setOnClickListener(this);}dialog_text.setText(message);}/*  * */@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif (isShowing()) {dismiss();}}}


3、需要在styles这样定义自己的style,需要在布局中使用

    <style name="SundayDialogs" parent="@android:Theme.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowBackground">@color/transparent</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowContentOverlay">@null</item>    </style>

4、使用方法,在存有点击事件的按钮上可以这样调用

@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.button:if (dailog == null) {dailog = new CommonDialog(MainActivity.this);}dailog.show();dailog.setCancel(true, "确定要打开一个页面吗?");dailog.setBtnOkClick("确定", this);break;case R.id.dialog_ok:dailog.dismiss();startActivity(new Intent(MainActivity.this,SecondActivity.class));default:break;}}

5、项目效果图

Android 自定义弹出框_第1张图片

最后粘贴上项目下载地址


MyCommonDialog




更多相关文章

  1. android onFling 事件没有用
  2. Android之键盘点击事件
  3. android 按钮置灰效果
  4. android事件分发机制一
  5. Android 处理 Button 单击事件的三种方法
  6. Android控件布局属性大全

随机推荐

  1. Android 开发者从0到1发布一个微信小程序
  2. Bottomley在Linux大会的发言:Android,forki
  3. Ubuntu下android学习——(2)Android系统构
  4. 微软一年通过Android获得几十亿美元收入,
  5. Crosswalk 集成到 Android(安卓)Studio
  6. 服务器基于PHP CodeIgniter,Android基于Vo
  7. Android(安卓)SharedPreferences用法及程
  8. Android官方离线文档(API文档)打开速度慢的
  9. Android中Cursor关闭的问题
  10. Android工程 引用另外一个Android工程(类