android学习之自定义dialog
来源:互联网 发布:php get请求 编辑:程序博客网 时间:2024/05/16 07:58
本章将自己学习的自定义dialog和大家分享下
首先大家先看下效果
接下来我们就看代码:
1. MainActivity
public class MainActivity extends Activity implements MyListener {
private MyDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dialog = new MyDialog(MainActivity.this);
}
public void click(View view) {
dialog.getDialog(this).setTitle("退出当前账号").setMsg("在连续登陆15天,就可变身为QQ达人。退出QQ可能会使你现有记录归零,确定退出?").show();
}
@Override
public void configm() {
Toast.makeText(MainActivity.this, "确定", 0).show();
}
@Override
public void cancel() {
Toast.makeText(MainActivity.this, "取消", 0).show();
}
}
2. MyDialog
public class MyDialog implements OnClickListener {
private Dialog alert;
private Context c;
private TextView title, msg;
private Button neg, pos;
private MyListener listener;
public MyDialog(Context c) {
this.c = c;
}
public MyDialog getDialog(MyListener listener) {
this.listener = listener;
alert = new Dialog(c, R.style.AlertDialogStyle);
View alertView = View.inflate(c, R.layout.view_alertdialog, null);
alert.setContentView(alertView);
title = (TextView) alertView.findViewById(R.id.txt_title);
msg = (TextView) alertView.findViewById(R.id.txt_msg);
neg = (Button) alertView.findViewById(R.id.btn_neg);
pos = (Button) alertView.findViewById(R.id.btn_pos);
neg.setOnClickListener(this);
pos.setOnClickListener(this);
return this;
}
public MyDialog setTitle(String m_title) {
title.setText(m_title);
return this;
}
public MyDialog setMsg(String m_content) {
msg.setText(m_content);
return this;
}
public void show() {
alert.show();
}
@Override
public void onClick(View v) {
if (v == neg) {
listener.configm();
alert.dismiss();
} else if (v == pos) {
listener.cancel();
alert.dismiss();
}
}
}
3.接口
public interface MyListener {
void configm();
void cancel();
}
4.style样式
<style name="AlertDialogStyle" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item><!-- 提示框的背景颜色 -->
<item name="android:windowContentOverlay">@null</item><!-- 是否有遮盖 -->
<item name="android:windowIsFloating">true</item> <!-- 提示框是否是浮动的 -->
<item name="android:windowFrame">@null</item> <!-- 提示框是否有边框 -->
<item name="android:backgroundDimEnabled">true</item><!-- 是否允许对对话框的背景变暗 true允许变暗 -->
<item name="android:windowNoTitle">true</item> <!-- 提示框是否有标题 -->
<item name="android:windowIsTranslucent">true</item> <!-- 提示框滞使透明的 -->
</style>
5.dialog布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/lLayout_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/alert_bg"
android:orientation="vertical" >
<TextView
android:id="@+id/txt_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:textColor="#000000"
android:textSize="16sp" />
<ImageView
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_marginTop="10dp"
android:background="@color/alertdialog_line" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_neg"
android:layout_width="wrap_content"
android:layout_height="43dp"
android:layout_weight="1"
android:gravity="center"
android:textColor="#FF7200"
android:textSize="16sp"
android:text="确定"
android:background="@drawable/selector_bt"
/>
<ImageView
android:id="@+id/img_line"
android:layout_width="0.5dp"
android:layout_height="43dp"
android:background="@color/alertdialog_line" />
<Button
android:id="@+id/btn_pos"
android:layout_width="wrap_content"
android:layout_height="43dp"
android:layout_weight="1"
android:gravity="center"
android:textColor="#FF7200"
android:background="@drawable/selector_bt"
android:text="取消"
android:textSize="16sp"/>
</LinearLayout>
</LinearLayout>
6.drawable
alert_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dp"/>
<solid android:color="#ffffff"/>
</shape>
alert_bt_default.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dp"/>
<solid android:color="#ffffff"/>
</shape>
alert_bt_press.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dp"/>
<solid android:color="#b9b9b9"/>
</shape>
selector_bt.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/alert_bt_press"/>
<item android:drawable="@drawable/alert_bt_default"/>
</selector>
- android学习之-自定义Dialog
- android学习之自定义dialog
- android之自定义dialog
- Android之自定义dialog
- Android之自定义dialog
- Android之自定义Dialog
- Android 之 自定义Dialog
- android自定义之Dialog
- 学习笔记之自定义Dialog
- 我的学习之旅:android自定义Dialog
- 【Android学习笔记】自定义Dialog
- android 组件之Dialog(自定义)
- Android之自定义dialog对话框
- android开发之自定义dialog
- Android 之自定义加载Dialog
- 自定义Dialog android Dialog
- android学习记录1:android自定义Dialog
- android学习之Dialog(二)
- 7. Reverse Integer
- centos SSH免密码登录 使用公钥
- maven 打包时mapper.xml打不进去问题
- 持续集成
- MAVEN 聚合、继承
- android学习之自定义dialog
- android之FrameLayout属性foreground
- jQuery EasyUI使用教程之格式化组合框项
- JVM 编译之指令重排
- MySQL四种事务隔离级的说明
- textView 弹出键盘上面添加完成按钮,并设置输入内容的格式。
- Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法
- IOS(数字优先,字母其次进行排序)
- hibernate入门实例(一)(初学者)