Android——对话框1(一般、选择、自定义、进度条)
xml
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击触发弹出普通对话框"
android:onClick="pt_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击触发弹出单选对话框"
android:onClick="danxuanonclick"/> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击触发弹出多选对话框"
android:onClick="duoxuanonclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击触发弹出自定义对话框"
android:onClick="zdy_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击触发弹出自定义旋转进度条对话框"
android:onClick="jdt_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击触发弹出自定义水平进度条对话框"
android:onClick="jdt1_onclick"/>
loginlayout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/anniu2"
android:scaleType="fitXY"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名"
android:id="@+id/et_username"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:inputType="textPassword"
android:id="@+id/et_password"/> </LinearLayout>
java
package com.example.chenshuai.test322; import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.TimePicker;
import android.widget.Toast; import java.util.Calendar; /**
* Created by chenshuai on 2016/3/30.
*/
public class UIActivity2 extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ui2); Button bt_changan = (Button)findViewById(R.id.bt_changan);
bt_changan.setOnCreateContextMenuListener(this); //进度条
//final 生命周期为整个类
final ProgressBar pb_1 = (ProgressBar)findViewById(R.id.pb_1);
final ProgressBar pb_2 = (ProgressBar)findViewById(R.id.pb_2); SeekBar sb_1 = (SeekBar)findViewById(R.id.sbr_1); sb_1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { pb_2.setProgress(progress);
} //开始拖动
@Override
public void onStartTrackingTouch(SeekBar seekBar) { } //结束拖动
@Override
public void onStopTrackingTouch(SeekBar seekBar) { pb_2.setProgress(seekBar.getProgress());
if (seekBar.getProgress() == seekBar.getMax()) {
//设置不可见 GONE不占位置 invisible 占位置
pb_1.setVisibility(View.GONE); } else {
//可见
pb_1.setVisibility(View.VISIBLE);
} }
});
} //菜单 上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { menu.add(0, 1, 0, "添加");
menu.add(0, 2, 1, "修改");
menu.add(0, 3, 2, "删除");
SubMenu m = menu.addSubMenu(0, 4, 3, "子菜单");
m.add(0,4-1,0,"子菜单项一");
m.add(0,4-2,1,"子菜单项二");
m.add(0,4-3,2,"子菜单项三");
m.add(0,4-4,3,"子菜单项四"); super.onCreateContextMenu(menu, v, menuInfo);
} @Override
public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId())
{
case 1:
Toast.makeText(UIActivity2.this, "触发了添加功能", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(UIActivity2.this, "触发了删除功能", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(UIActivity2.this, "触发了修改功能", Toast.LENGTH_SHORT).show();
break; }
return super.onContextItemSelected(item);
} @Override
//重写 创建选项菜单的方法
public boolean onCreateOptionsMenu(Menu menu) { //添加菜单项
//第一种 纯编码方式
/*menu.add(0, 1, 0, "添加");
menu.add(0, 2, 2, "删除");
menu.add(0, 3, 1, "修改");
*/
//第二种 加载菜单文件方式 //1.获取一个菜单加载器 MenuInflater menuInflater = getMenuInflater(); menuInflater.inflate(R.menu.mymenu,menu); return super.onCreateOptionsMenu(menu);
} @Override
public boolean onOptionsItemSelected (MenuItem item){ //Toast.makeText(UiActivity2.this, "选中的菜单项是" + item.getTitle(), Toast.LENGTH_SHORT).show(); //根据菜单项不同响应不同功能
switch (item.getItemId()) {
case 1:
Toast.makeText(UIActivity2.this, "触发了添加功能", Toast.LENGTH_SHORT).show();
break;
case 2:
Toast.makeText(UIActivity2.this, "触发了删除功能", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(UIActivity2.this, "触发了修改功能", Toast.LENGTH_SHORT).show();
break;
case R.id.it1:
Toast.makeText(UIActivity2.this, "触发了删除一功能", Toast.LENGTH_SHORT).show();
break;
case R.id.it2:
Toast.makeText(UIActivity2.this, "触发了添加一功能", Toast.LENGTH_SHORT).show();
break;
} return super.onOptionsItemSelected(item); } public void pt_onclick(View view)
{
//普通对话框
//对话框的构建器
//AlertDialog.Builder ab = new AlertDialog.Builder(this);
/* ab.setTitle("数据删除");
ab.setMessage("你确定要删除吗?");
//负面按钮
ab.setPositiveButton("取消", null);
//正面按钮
ab.setNegativeButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { Toast.makeText(UIActivity2.this, "删除成功", Toast.LENGTH_SHORT).show(); }
});
//显示
ab.show();*/ //方法链调用
new AlertDialog.Builder(this) .setTitle("确认保存")
.setMessage("确定要保存吗?")
.setPositiveButton("确定", null)
.setNegativeButton("取消", null)
.show();
} public void danxuanonclick(View v)
{
final String[] str_color = {"红","绿","蓝","灰"};
new AlertDialog.Builder(this)
.setTitle("请选择颜色")
.setSingleChoiceItems(str_color, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { Toast.makeText(UIActivity2.this, "选中了" + str_color[which], Toast.LENGTH_SHORT).show(); //移除
//dialog.dismiss();
}
})
.setNeutralButton("确定", null)
.show(); }
public void duoxuanonclick(View v)
{
final String[] str_color = {"红","绿","蓝","灰"};
final boolean[] bl_sz = {true,true,true,false};
new AlertDialog.Builder(this)
.setTitle("请选择颜色")
.setMultiChoiceItems(str_color, bl_sz, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
Toast.makeText(UIActivity2.this, str_color[which] + "选中了", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(UIActivity2.this, str_color[which] + "取消选中了", Toast.LENGTH_SHORT).show();
} }
})
.setNeutralButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { //遍历数组
for (boolean b : bl_sz) { try {
Thread.sleep(100);
} catch (Exception ex) { }
Toast.makeText(UIActivity2.this, "值=" + b, Toast.LENGTH_SHORT).show(); }
}
})
.show();
} public void zdy_onclick(View view)
{
//1.获取加载器
LayoutInflater layoutInflater = getLayoutInflater();
//2.用加载器加载文件
//final View v_1 = layoutInflater.inflate(R.layout.loginlayout,null); new AlertDialog.Builder(this) //.setView(v_1)
.setView(R.layout.loginlayout)
.setNegativeButton("取消", null)
.setPositiveButton("登陆", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { AlertDialog al = (AlertDialog) dialog; //处理数据
//EditText et_username = (EditText)v_1.findViewById(R.id.et_username); EditText et_username = (EditText) al.findViewById(R.id.et_username); //Toast.makeText(UIActivity2.this, "用户名="+et_username.getText(), Toast.LENGTH_SHORT).show(); String useneme = et_username.getText().toString(); EditText et_password = (EditText) al.findViewById(R.id.et_password);
String pwd = et_password.getText().toString(); if (useneme.equals("wukong") && pwd.equals("123")) { Intent in = new Intent(UIActivity2.this, Activity1.class); startActivity(in);
} else
Toast.makeText(UIActivity2.this, "用户名" + useneme + "密码" + pwd, Toast.LENGTH_SHORT).show();
{ } }
})
.show(); } //旋转进度条
public void jdt_onclick(View view)
{ final ProgressDialog pd = new ProgressDialog(this);
pd.setMessage("正在加载请稍后");
pd.show(); //创建thread实例 =【重写run方法 启动多线程
new Thread()
{
@Override
public void run() {
super.run();
try
{
Thread.sleep(3000);
}
catch (Exception e)
{ } pd.dismiss();//关闭 }
}.start(); }
//水平进度条
public void jdt1_onclick(View view)
{ final ProgressDialog pd = new ProgressDialog(this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMessage("正在加载请稍后");
pd.show(); //创建thread实例 实现Runable接口 启动多线程
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i <= pd.getMax(); i++) {
try {
Thread.sleep(100);
} catch (Exception e) { } pd.setProgress(i);
} pd.dismiss();
}
}).start(); //创建thread实例 重写run方法 启动多线程
new Thread()
{
@Override
public void run() {
super.run(); //新线程 子线程
for (int i = 0; i <= pd.getMax(); i++) {
try {
Thread.sleep(100);
} catch (Exception e) { } pd.setProgress(i);
} pd.dismiss();//关闭
//子线程不能直接操作主线程 UI线程
//1.可以用hander
//2.也可以用runOnUiThread
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(UIActivity2.this, "加载完成", Toast.LENGTH_SHORT).show();
}
}); } }.start(); }
}
Android——对话框1(一般、选择、自定义、进度条)的更多相关文章
- 最简单的android自定义进度条样式
一.自定义圆形进度条样式 1.在安卓项目drawable目录下新建一个xml文件如下:<?xml version="1.0" encoding="utf-8&quo ...
- android 自定义进度条颜色
android 自定义进度条颜色 先看图 基于产品经理各种自定义需求,经过查阅了解,下面是自己对Android自定义进度条的学习过程! 这个没法了只能看源码了,还好下载了源码, sources\b ...
- Android自定义进度条
Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如ok,我们开始吧: 一)变换前背景 先来看看 ...
- android113 自定义进度条
MainActivity: package com.itheima.monitor; import android.os.Bundle; import android.app.Activity; im ...
- Android开发-各种各样好看漂亮的进度条,指示器,加载提示汇总
导读:之前项目中用到一些进度条,找了不少,打算写个demo自己总结一下,留着以后用, 有些是自己写的,有些是github上找的别人的库,如果大家觉得好看可以用,直接下载复制代码到项目里就可以用,ok ...
- 自定义进度条PictureProgressBar——从开发到开源发布全过程
自定义进度条PictureProgressBar——从开发到开源发布全过程 出处: 炎之铠邮箱:yanzhikai_yjk@qq.com 本文原创,转载请注明本出处! 本项目JCenter地址:htt ...
- android 自定义控件——(四)圆形进度条
----------------------------------↓↓圆形进度条(源代码下有属性解释)↓↓---------------------------------------------- ...
- Qt之模型/视图(自定义进度条)
简述 在之前的章节中分享过关于QHeaderView表头排序.添加复选框等内容,相信大家模型/视图.自定义风格有了一定的了解,下面我们来分享一个更常用的内容-自定义进度条. 实现方式: 从QAbstr ...
- android 网络异步加载数据进度条
ProgressDialog progressDialog = null; public static final int MESSAGETYPE = 0; private void execute( ...
- C# 根据BackgroundWoker异步模型和ProgressBar控件,自定义进度条控件
前言 程序开发过程中,难免会有的业务逻辑,或者算法之类产生让人能够感知的耗时操作,例如循环中对复杂逻辑处理;获取数据库百万乃至千万级数据;http请求的时候等...... 用户在使用UI操作并不知道程 ...
随机推荐
- python中如何对list之间求交集,并集和差集
最近遇到一个从list a里面去除list b的元素的问题,由于a很大,b也不小.所以遇到点困难,现在mark一下. 先说最简单的方法: a = [1, 2, 3, 4, 5, 6, 7, 8, 9, ...
- Linux基础之常用命令篇
一.命令的基本格式 [root@localhost~] root为用户名 -表示当前所在位置 localhost主机名 ‘#’超级用户 '$" 普通用户 命令的基本格式: 命令 [选项] [ ...
- Linux Pin Control 子系统
Pin Control Subsystem是Linux内核抽象出的一套用于控制硬件引脚的一套子系统. 1.源文件列表 源码位于linux/drivers/pinctrl目录下,源文件列表如下: 文件名 ...
- Eureka常见问题总结
在Spring-cloud做微服务架构时,会碰到各种坑.下面总结一下Eureka的常见问题. 一.Eureka的自我保护模式 如果在Eureka Server的首页看到以下这段提示,则说明Eure ...
- Jvisualvm监控远程linux下Tomcat
Jvisualvm监控远程linux下Tomcat 1.编辑tomcat/bin/catalina.sh 加入下面这段代码,中间无换行: CATALINA_OPTS="$CATALINA_O ...
- powerdesigner学习笔记【转载】
转自:http://blog.itpub.net/11968859/viewspace-620440/ 谢谢! 1.做CDM模型的时候,因为开始定义ITEM的时候,没有注意把NAME和CODE全定义成 ...
- MIME类型释义--MIME类型大全--web.xml中有关<mime-mapping>配置说明
最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识 ...
- Spring Cloud构建微服务架构(三)断路器
在分布式架构中,断路器模式的作用也是类似的,当某个服务单元发生故障(类似用电器发生短路)之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个错误响应,而不是长时间的等待.这样就不会使得线程因 ...
- Javascript玩转继承(二)
对象伪装来实现继承.在这里先来说一下这种方式的优缺点 这种方式是比较容易理解的,在子类中调用父类的构造函数.另外,这种方法最大的一个优点就是说构造继承可以实现多继承,复习下这个代码: function ...
- 基于Django的独立运行python脚本开发
Django框架很方便,比如其方便的ORM,如果写基于Django的独立运行脚本,主要在脚本前面加上以下代码: import sys,os,django sys.path.append(os.path ...