Easy Tag Write(3.1)
- package skyseraph.android.util;
- import skyseraph.easytagwrite.R;
- import android.app.Dialog;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.graphics.drawable.Drawable;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup.LayoutParams;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- public class CustomDialog extends Dialog {
- public CustomDialog(Context context, int theme) {
- super(context, theme);
- }
- public CustomDialog(Context context) {
- super(context);
- }
- /**
- * Helper class for creating a custom dialog
- */
- public static class Builder {
- private Context context;
- private String title;
- private String message;
- private String positiveButtonText;
- private String negativeButtonText;
- private View contentView;
- private Drawable drawable;
- private DialogInterface.OnClickListener positiveButtonClickListener,
- negativeButtonClickListener;
- public Builder(Context context) {
- this.context = context;
- }
- /**
- * Set the Dialog message from String
- *
- * @param title
- * @return
- */
- public Builder setMessage(String message) {
- this.message = message;
- return this;
- }
- /**
- * Set the Dialog message from resource
- *
- * @param title
- * @return
- */
- public Builder setMessage(int message) {
- this.message = (String)context.getText(message);
- return this;
- }
- /**
- * Set the Dialog title from resource
- *
- * @param title
- * @return
- */
- public Builder setTitle(int title) {
- this.title = (String)context.getText(title);
- return this;
- }
- /**
- * Set the Dialog title from String
- *
- * @param title
- * @return
- */
- public Builder setTitle(String title) {
- this.title = title;
- return this;
- }
- /***
- * Set the Dialog Icon from resource
- *
- * @param imageres
- * @return
- */
- public Builder setIcon(int imageres) {
- this.drawable = context.getResources().getDrawable(imageres);
- return this;
- }
- /***
- * Set the Dialog Icon from Drawable
- *
- * @param drawable
- * @return
- */
- public Builder setIcon(Drawable drawable) {
- this.drawable = drawable;
- return this;
- }
- /**
- * Set a custom content view for the Dialog. If a message is set, the
- * contentView is not added to the Dialog...
- *
- * @param v
- * @return
- */
- public Builder setContentView(View v) {
- this.contentView = v;
- return this;
- }
- /**
- * Set the positive button resource and it's listener
- *
- * @param positiveButtonText
- * @param listener
- * @return
- */
- public Builder setPositiveButton(int positiveButtonText,
- DialogInterface.OnClickListener listener) {
- this.positiveButtonText = (String)context.getText(positiveButtonText);
- this.positiveButtonClickListener = listener;
- return this;
- }
- /**
- * Set the positive button text and it's listener
- *
- * @param positiveButtonText
- * @param listener
- * @return
- */
- public Builder setPositiveButton(String positiveButtonText,
- DialogInterface.OnClickListener listener) {
- this.positiveButtonText = positiveButtonText;
- this.positiveButtonClickListener = listener;
- return this;
- }
- /**
- * Set the negative button resource and it's listener
- *
- * @param negativeButtonText
- * @param listener
- * @return
- */
- public Builder setNegativeButton(int negativeButtonText,
- DialogInterface.OnClickListener listener) {
- this.negativeButtonText = (String)context.getText(negativeButtonText);
- this.negativeButtonClickListener = listener;
- return this;
- }
- /**
- * Set the negative button text and it's listener
- *
- * @param negativeButtonText
- * @param listener
- * @return
- */
- public Builder setNegativeButton(String negativeButtonText,
- DialogInterface.OnClickListener listener) {
- this.negativeButtonText = negativeButtonText;
- this.negativeButtonClickListener = listener;
- return this;
- }
- /**
- * Create the custom dialog
- */
- public CustomDialog create() {
- LayoutInflater inflater = (LayoutInflater)context
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- // instantiate the dialog with the custom Theme
- final CustomDialog dialog = new CustomDialog(context, R.style.Dialog);
- View layout = inflater.inflate(R.layout.dialog, null);
- dialog.addContentView(layout, new LayoutParams(LayoutParams.MATCH_PARENT,
- LayoutParams.WRAP_CONTENT));
- // set the dialog title
- ((TextView)layout.findViewById(R.id.title)).setText(title);
- if (drawable != null) {
- ((ImageView)layout.findViewById(R.id.imageView1)).setImageDrawable(drawable);
- } else {
- ((ImageView)layout.findViewById(R.id.imageView1)).setVisibility(View.GONE);
- }
- // set the confirm button
- if (positiveButtonText != null) {
- ((Button)layout.findViewById(R.id.positiveButton)).setText(positiveButtonText);
- if (positiveButtonClickListener != null) {
- ((Button)layout.findViewById(R.id.positiveButton))
- .setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- positiveButtonClickListener.onClick(dialog,
- DialogInterface.BUTTON_POSITIVE);
- }
- });
- }
- } else {
- // if no confirm button just set the visibility to GONE
- layout.findViewById(R.id.positiveButton).setVisibility(View.GONE);
- }
- // set the cancel button
- if (negativeButtonText != null) {
- ((Button)layout.findViewById(R.id.negativeButton)).setText(negativeButtonText);
- if (negativeButtonClickListener != null) {
- ((Button)layout.findViewById(R.id.negativeButton))
- .setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- negativeButtonClickListener.onClick(dialog,
- DialogInterface.BUTTON_NEGATIVE);
- }
- });
- }
- } else {
- // if no confirm button just set the visibility to GONE
- layout.findViewById(R.id.negativeButton).setVisibility(View.GONE);
- }
- // set the content message
- if (message != null) {
- ((TextView)layout.findViewById(R.id.message)).setText(message);
- } else if (contentView != null) {
- // if no message set
- // add the contentView to the dialog body
- ((LinearLayout)layout.findViewById(R.id.content)).removeAllViews();
- ((LinearLayout)layout.findViewById(R.id.content)).addView(contentView,
- new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
- }
- dialog.setContentView(layout);
- return dialog;
- }
- }
- }
Easy Tag Write(3.1)的更多相关文章
- Easy Tag Write(3.3)
package skyseraph.android.util; /** * @Title : Constant.java * @Package : tcl.nfc.tv.util * @ClassNa ...
- Easy Tag Write(3.2)
package skyseraph.android.util; /** * @Title : LogUtil.java * @Package : tcl.nfc.phone.util * @Class ...
- Easy Tag Write(2)
package skyseraph.android.util.nfc; import com.google.common.collect.BiMap; import com.google.common ...
- Easy Tag Write(1)
package skyseraph.easytagwrite; import skyseraph.android.util.CustomDialog; import skyseraph.android ...
- [LeetCode] 70. Climbing Stairs_ Easy tag: Dynamic Programming
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- [LeetCode] 437. Path Sum III_ Easy tag: DFS
You are given a binary tree in which each node contains an integer value. Find the number of paths t ...
- [LeetCode] 257. Binary Tree Paths_ Easy tag: DFS
Given a binary tree, return all root-to-leaf paths. Note: A leaf is a node with no children. Example ...
- [LeetCode] 101. Symmetric Tree_ Easy tag: BFS
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- JUnit5学习之五:标签(Tag)和自定义注解
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
随机推荐
- jquery点击元素之外触发事件
$("#errorMsg_layer").bind("click",function(e){ if($(e.target).closest("#err ...
- 还是畅通工程[HDU1233]
还是畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...
- uva10375 Choose and Divide(唯一分解定理)
uva10375 Choose and Divide(唯一分解定理) 题意: 已知C(m,n)=m! / (n!*(m-n!)),输入整数p,q,r,s(p>=q,r>=s,p,q,r,s ...
- 如何解决google ping不通的问题。
1. 用http://ping.chinaz.com/ ping google的域名. 2. 会ping出很多ip,但是chinaz用的是测试网点去ping的,不是你本地宽带, 所以把ping出ip拷 ...
- initWithCoder: 与initWithFrame:的区别
从nib中加载对象实例时,init:或initWithFrame:都不会调用.而是调用initWithCoder:怎么理解: 有时候,知道initWithFrame方法如何用,但是么有弄明白ini ...
- Oracle总结
摘自:http://www.cnblogs.com/linjiqin/category/283838.html oracle decode用法 select decode( x , 1 , ‘x is ...
- ThinPHP基础
注:约定([书写]规则)胜于配置 *测试连接是否成功:localhost/tp/index.php1.localhost/tp/index.php(入口文件)/Home(模块名)/Index(控制器名 ...
- 利用mask layer 勾View
#define SCREEN_WIDTH [[UIScreen mainScreen] bounds].size.width #define SCREEN_HEIGHT [[UIScreen main ...
- GIT 配置管理
git版本控制开发流程小结笔记(一) 收藏 何良瑞Nyanko君 ...
- 【转载】APP留存率多少才合格——全面解析留存率
做产品经理的一般都会关注以下 提高用户留存率 提高用户粘性和活跃度 这些天,有几位朋友都找我聊产品的留存率,有做手游的,做工具的,做社交APP的,于是把以前写过的留存率文章翻出来. 次日留 ...