自定义的dialog

自定义的dialog  其中包含置顶 删除 和取消

下面的是BaseDialog

package com.free.csdn.view.dialog;

import android.app.Dialog;
import android.content.Context;

/**
*
* @author tangqi
* @data 2015年8月8日下午4:26:32
*/

public class BaseDialog extends Dialog {

public BaseDialog(Context context) {
super(context);
}

public BaseDialog(Context context, int theme) {
super(context, theme);
}

/**
* 监听确定
*/
public abstract interface OnConfirmListener {// 抽象的方法 
public abstract void onConfirm(String result);
}

/**
* 监听取消
*/
public abstract interface OnCancleListener {

public abstract void onCancle(String result);
}

/**
* 监听删除
*/
public abstract interface OnDeleteListener {

public abstract void onDelete(String result);
}

/**
* 监听置顶
*/
public abstract interface OnStickListener {

public abstract void onStick(String result);
}

}

下面的是得以继承上面的basedialog

package com.free.csdn.view.dialog;

import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import com.free.csdn.R;
import com.free.csdn.bean.Blogger;

/**
* 博主相关操作
*
* @author tangqi
* @data 2015年8月8日下午9:54:05
*/

public class BloggerOperationDialog extends BaseDialog implements
android.view.View.OnClickListener {

private OnDeleteListener mOnDeleteListener;
private OnStickListener mOnStickListener;
private Blogger mBlogger;

public BloggerOperationDialog(Context context, Blogger blogger) {
super(context, R.style.Theme_Light_FullScreenDialogAct);//dialog的样式问题
// TODO Auto-generated constructor stub

this.mBlogger = blogger;
setContentView(R.layout.dialog_blogger_operation);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

TextView deleteView = (TextView) findViewById(R.id.tv_delete_blogger);
TextView stickView = (TextView) findViewById(R.id.tv_stick_blogger);
TextView cacleView = (TextView) findViewById(R.id.tv_cacle_operate);

if (mBlogger.getIsTop() == 0) {
stickView.setText("置顶博主");
} else {
stickView.setText("取消置顶");
}

deleteView.setOnClickListener(this);
stickView.setOnClickListener(this);
cacleView.setOnClickListener(this);
}

@Override
public void onClick(View v) {
dismiss();

switch (v.getId()) {
case R.id.tv_delete_blogger:
mOnDeleteListener.onDelete(null);
break;

case R.id.tv_stick_blogger:
mOnStickListener.onStick(null);
break;

case R.id.tv_cacle_operate:
break;

default:
break;
}
}

/*
* 删除
*/
public void setOnDeleteListener(OnDeleteListener onDeleteListener) {
this.mOnDeleteListener = onDeleteListener;
}

/*
* 置顶
*/
public void setOnStickListener(OnStickListener onStickListener) {
this.mOnStickListener = onStickListener;
}

}

dialog的主题

<style name="Theme.Light.FullScreenDialogAct" parent="@style/BaseDialog">
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowSoftInputMode">adjustPan</item>
</style>

时间: 2024-08-24 12:57:27

自定义的dialog的相关文章

android如何写一个自定义的dialog可以在Title的位置弹出来

先上效果图: Title的Layout为: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/title_h

自定义一个Dialog样式的Activity窗口,切换到Dialog的方法

首先定义一个style 在style里面添加 <style name="MyDialog" parent="@android:Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name=

自定义Android Dialog

private void showDialog() { mDialog = new Dialog(this); mDialog.setCanceledOnTouchOutside(true); Window dialogWindow = mDialog.getWindow(); dialogWindow.setBackgroundDrawable(new ColorDrawable(0)); dialogWindow.setContentView(R.layout.set_public_clie

自定义样式 dialog

自定义样式 dialog,可设置界面外点击屏幕外和返回键  是否消失 基本用法如下: CustomDialog.Builder customBuilder = new CustomDialog.Builder(context); customBuilder.setTitle(title) .setMessage(content) .setNegativeButton(cancelText, new DialogInterface.OnClickListener() { public void o

自定义的dialog中的EditText无法弹出输入法解决方案

1.解决无法弹出输入法: 在show()方法调用之前,用dialog.setView(new EditText(context))添加一个空的EditText,由于是自定义的AlertDialog,有我们指定的布局,所以设置这个不会影响我们的功能,这样就可以弹出输入法了-- 2.可以弹出输入法了,但了为了增强用户体验性,当dialog中含有editText时应该,在显示dialog的同时自动弹出键盘: (1) 可以在自定义的dialog中增加如下方法: public void showKeybo

android中自定义的dialog中的EditText无法弹出输入法解决方案

1.解决无法弹出输入法: 在show()方法调用之前,用dialog.setView(new EditText(context))添加一个空的EditText,由于是自定义的AlertDialog,有我们指定的布局,所以设置这个不会影响我们的功能,这样就可以弹出输入法了…… 2.可以弹出输入法了,但了为了增强用户体验性,当dialog中含有editText时应该,在显示dialog的同时自动弹出键盘: (1) 可以在自定义的dialog中增加如下方法: [java] view plain cop

自定义loading dialog

一.背景介绍 App在进行比较耗时操作时,通常会给用户一个提示.这样做,一方面照顾到了用户情绪:另一方面也可以避免用户在一头雾水的情况下误操作.比较通常的一种做法:在页面上显示一个“加载中”的Dialog,操作完成之后销毁该Dialog.我在这里把它称为LoadingDialog,下面记录一下我的实现. 二.原理 扩展Dialog,在不改变其行为的前提下改变其外观.主要进行了两个方面的自定义: 1.自定义Dialog的布局文件: 2.自定义Dialog的style: 三.实现 (1)自定义Dia

实现自定义的dialog(类似QQ点击退出后弹出的对话框)

这个是好久之前就做的了,然后看到群里总会有人在问自定义dialog的问题,说明就打算po上来,也让自己以后再开发时能够直接调用,找资源太麻烦了.实现效果很原来是真的很简单的. 按照惯例,先上图(懒得截图了,就直接po上应用里实现的效果图): 然后实现是很简单的: 布局:alert_dialog_layout.xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android

Android自定义对话框(Dialog)位置,大小

代码: package angel.devil; import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.Gravity;import android.view.Window;import android.view.WindowManager; public class DialogDemoActivity extends Activity { /** C