andorid 对话框

activity_ui2.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="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.hanqi.application3.UIActivity2"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="长按触发上下文菜单"
        android:id="@+id/bt_changan"/>

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/pb_1"/>

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="?android:attr/progressBarStyleHorizontal"
        android:max="100"
        android:progress="50"
        android:secondaryProgress="70"
        android:id="@+id/pb_2"/>
    <!--progress  当前进度-->
    <!--
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Small"/>
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Large"/>
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Inverse"/>
    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Large.Inverse"/>
-->
    <SeekBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="20"
        android:secondaryProgress="40"
        android:id="@+id/sb_1"/>
    <!--<RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="6"
        android:rating="3"
        android:isIndicator="true"/>
    numStars 设置几颗星

    isIndicator 是否不准修改-->

    <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="dx_onClick"
        />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="点击触发弹出多选对话框"
        android:onClick="ddx_onClick"
        />
    <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"
        />
</LinearLayout>

activity_ui2.java

package com.hanqi.application3;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.ContextMenu;
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.EditText;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.Toast;

public class UIActivity2 extends Activity {

    @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);

        //bt_changan.setOnContextClickListener();创建监听
        //进度条
        //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.sb_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())
                {
                    //设置不可见INVISIBLE  占有空间,但是隐藏
                    //GONE 直接取消
                    pb_1.setVisibility(View.GONE);
                }
                else
                {
                    //可见VISIBLE
                    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,41,0,"子菜单项1");
        m.add(0,42,0,"子菜单项2");
        m.add(0,43,0,"子菜单项3");

//        MenuInflater mi = getMenuInflater();
//        mi.inflate(R.menu.mymenu, menu);

        super.onCreateContextMenu(menu, v, menuInfo);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId())
        {
            case R.id.it2:
                Toast.makeText(UIActivity2.this, "触发了添加1功能", Toast.LENGTH_SHORT).show();
                break;
            case R.id.it1:
                Toast.makeText(UIActivity2.this, "触发了删除1功能", 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 mi = getMenuInflater();
        mi.inflate(R.menu.mymenu, menu);

        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //item.getTitle() 加载标题
        //Toast.makeText(UIActivity2.this, "选中的菜单项是"+item.getTitle(), Toast.LENGTH_SHORT).show();
        //根据菜单项的不同相应不同的功能
        //获取Item的id
        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, "触发了添加1功能", Toast.LENGTH_SHORT).show();
                break;
            case R.id.it2:
                Toast.makeText(UIActivity2.this, "触发了删除1功能", Toast.LENGTH_SHORT).show();
                break;
        }

        return super.onOptionsItemSelected(item);
    }
    public void pt_onClick(View v)
    {
//        //构建一个普通对话框
//        //对话框的构建器
//        AlertDialog.Builder ab = new AlertDialog.Builder(this);
//        ab.setTitle("数据删除");
//        ab.setMessage("你确定要删除码?");
//        //负面按钮
//        ab.setNeutralButton("取消",null);
//        //正面按钮
//        ab.setPositiveButton("确定", 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("你真的要保存吗?")
                .setNeutralButton("取消",null)
                .setPositiveButton("保存",null)
                .show();

    }
    public void dx_onClick(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 ddx_onClick(View v)
    {
        final String[] str_color={"红","绿","黄","蓝"};

        final boolean[] bl_xz = {true,false,false,true};
        new AlertDialog.Builder(this)
                .setTitle("请选择颜色")
                .setMultiChoiceItems(str_color, bl_xz, new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    //是否选中isChecked
                    public void onClick(DialogInterface dialog, int which, boolean isChecked) {

                        if (isChecked) {
                            Toast.makeText(UIActivity2.this, str_color + "被选中", Toast.LENGTH_SHORT).show();
                        } else {
                            Toast.makeText(UIActivity2.this, str_color + "取消选中", Toast.LENGTH_SHORT).show();
                        }
                    }
                })

                .setNeutralButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        //遍历
                        for (boolean b : bl_xz) {

                            Toast.makeText(UIActivity2.this, "值= " + b, Toast.LENGTH_SHORT).show();
                        }
                    }
                })

                .show();
    }

    public void zdy_onClick(View v)
    {
        //1.获取加载器
       // LayoutInflater lif = getLayoutInflater();
        //2.用加载器加载文件
        //final View v_1 = lif.inflate(R.layout.loginlayout, null);

        new AlertDialog.Builder(this)
                .setView(R.layout.loginlayout)
                //.setView(v_1)
                .setNeutralButton("取消", null)
                .setPositiveButton("登陆", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        AlertDialog al = (AlertDialog) dialog;
                        //处理数据

                        EditText et_username = (EditText) al.findViewById(R.id.et_username);
                        Toast.makeText(UIActivity2.this, "用户名=" + et_username.getText(), Toast.LENGTH_SHORT).show();

                    }
                })

                .show();
    }

    public void jdt_onClick(View v)
    {
        ProgressDialog pd = new  ProgressDialog(this);
            pd.setMessage("正在加载,请稍候...");
       //     pd.setTitle("进度对话框");
            pd.show();
        //创建Thread实例重写run(),start()启动多线程
        new Thread()
        {
            @Override
            public void run() {
                super.run();
                try {
            Thread.sleep(3000);
        }
        catch (Exception e)
        {

        }
            }
        }.start();
//        try {
//            Thread.sleep(2000);
//        }
//        catch (Exception e)
//        {
//
//        }
//
//
//        pd.dismiss();//关闭

        //多线程

    }
    public void jdt1_onClick(View v)
    {
        final ProgressDialog pd = new  ProgressDialog(this);
        pd.setMessage("正在加载...");

        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        pd.show();
        //创建Thread实例重写run(),start()启动多线程
        new Thread()
        {
            @Override
            public void run() {
                super.run();

                for (int i = 0; i <= pd.getMax();i++)
                {
                try {
                    Thread.sleep(300);
                }
                catch (Exception e)
                {

                }
                    pd.setProgress(i);
                }
            }
        }.start();

    }
}
时间: 2024-11-09 09:14:34

andorid 对话框的相关文章

andorid 全部对话框

.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="match_parent&qu

代码可读性艺术在Andorid中的体现

前言 最近接手的一些项目,不同的人编码风格迥异,类里的变量.方法的定义穿插,注释极为稀少,更有一些变量和方法的命名非常近似,例如表示播放队列的"playQueue"和表示歌单的"playList",wtf? 这不是一个意思吗?一些回调的时机也不能直观的看出来,通常需要debug调试多次;multi project之间值的传递.广播跨进程的发送.服务的开启和绑定,一句注释都没有,不知道过了这么久, 这些代码的同事,还能很快看懂自己写的东西吗?这简直让人抓狂啊,于是乎,

新博andorid 初中级考试评测以及答案-------小林老师出的试卷

一.单项选择题(10题,每题2分,共20分) 1.如果在android应用程序中需要发送短信,那么需要在AndroidManifest.xml文件中增加什么样的权限() A.发送短信,无需配置权限                 B.permission.SMS C.android.permission.RECEIVE_SMS        D.android.permission.SEND_SMS 2.对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(). A.onPause

Dialog详解(包括进度条、PopupWindow、自定义view、自定义样式的对话框)

Android中提供了多种对话框,在实际应用中我们可能会需要修改这些已有的对话框.本实例就是从实际出发,展现了andorid中大部分对话框,代码中用了一个对话框管理类来做封装,其中还定义了对话框的动画.自定义样式等等. 主布局文件(全是button) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.co

Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?

在 <Cordova webapp实战开发:(4)Android环境搭建>中我们搭建好了开发环境,也给大家布置了调用插件的预习作业,做得如何了呢?今天我们来学一下如何自己从头建立一个Andorid下的cordova插件. 本次练习你能学到的 学习如何实现自动更新功能 学习插件类的编写 学习插件的配置 学习插件的调用 主要内容 打开APP后检查版本更新,如果有更新则弹出更新对话框 APP中[检查更新]显示当前版本号,并可以点击进行版本检查更新 如何实现自动更新功能 你可以自己写代码,也可以网上找

用dialog在前台实现一个简单的UI对话框

<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>对话框部件(Dialog Widget)演示</title> <link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.m

bootstrap中的对话框-dialog

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> <meta http-

bootstrap中的对话框-dialog-2

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> <meta http-

C#WebBrowrse拦截下载对话框

为了实现这个功能,可算是折腾不少时间,网上搜素出来的结果基本都是如何屏蔽警告对话框.后来请教一个技术大牛(程序员之窗的主要作者Starts_2000),他用C++实现了,他尝试了下C#也没有解决,就忙其他的去,大牛时间一般都比较宝贵,后来我就将就用那个C++动态库,那个时候我测试环境是 win7 64位 +vs2013,后来系统环境变化成 win10 +vs2015,突然就不好使了,赶紧重新编译C++源码,各种错误,感觉怎么这么不稳定. 怎么办?总不能再让别人帮忙,下次环境变化了继续问别人?