最近接触啦一个自定义dialog 但是调用的是 一个activity来满足需求的
① 代码块中调dialog时需要添加的
Map<String, String> toast = new java.util.HashMap<String, String>();
toast.put("Toast", "想说的话");
toast.put("State", "Fail");
goNext(IsEmptyDialog.class, toast, false);
② dialog 类 IsEmptyDialog
package cn.com.thtf.tfpay.dialog;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import cn.com.thtf.tfpay.MainActivity;
import cn.com.thtf.tfpay.R;
import cn.com.thtf.tfpay.entity.ActivityList;
import cn.com.thtf.tfpay.libs.BaseActivity;
/**
*
* ClassName: PasswordDialog <br/>
* Function: TODO 弹出提示. <br/>
* Reason: TODO ADD REASON(可选). <br/>
* date: 2014-4-12 下午1:50:38 <br/>
*
* @author dongpeng
* @version
* @since JDK 1.6
*/
public class IsEmptyDialog extends BaseActivity
{
private Bundle bundle;
private TextView rvalue;// 返回对应的提示内容
private int leftNum = 3;// 秒数
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialogreturn);
ActivityList.activityList.add(this);
bundle = intent.getExtras();
if (bundle == null) {
return;
}
rvalue = (TextView) this.findViewById(R.id.tv_isempty);
rvalue.setText(bundle.getString("Toast"));
handler.postDelayed(runnable, 1000);
}
Handler handler = new Handler();
Runnable runnable = new Runnable()
{
@Override
public void run()
{
leftNum--;
if (leftNum > 0)
{
handler.postDelayed(this, 5000);
}
else
{
setResult(MainActivity.FLAG_RSP_JUST_RETURN);
finish();
}
}
};
/**
* 返回键
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_BACK:
case KeyEvent.KEYCODE_DPAD_CENTER:
setResult(MainActivity.FLAG_RSP_JUST_RETURN);
finish();
handler.removeCallbacks(runnable);
return true;
}
return false;
}
}
③ 添加.activity_dialogreturn.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="250dp"
android:background="@drawable/note_bg"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".dialog.IsEmptyDialog" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_isempty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="13dp"
android:text=""
android:textColor="@color/black"
android:textSize="37sp" />
</LinearLayout>
<Button
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="33dp"
android:background="@drawable/bg_btn_back"
android:padding="3dp"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
④ 添加权限
<activity
android:name="cn.com.thtf.tfpay.dialog.IsEmptyDialog"
android:screenOrientation="landscape"
android:theme="@style/Theme.CustomDialog">
</activity>
⑤ 在styles.xml 添加自定义dialog
<style name="Theme.CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<!-- 设置title -->
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
<!-- 设置边框 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 设置半透明 -->
<item name="android:windowFullscreen">true</item>
<!-- 设置全屏 -->
</style>