Android 自定义弹出框
16lz
2021-01-23
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();}}}
<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、项目效果图
MyCommonDialog
更多相关文章
- android onFling 事件没有用
- Android之键盘点击事件
- android 按钮置灰效果
- android事件分发机制一
- Android 处理 Button 单击事件的三种方法
- Android控件布局属性大全