码迷,mamicode.com
首页 > 其他好文 > 详细

对话框进度条吧

时间:2016-07-31 01:40:13      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

接着手动增减进度条的代码,就是通过一个按钮弹出进度条对话框。

新建一个按钮,id给个show

然后去主文件。

以下大部分代码可以无视,除了初始化,只用看switch中case R.id.show

package com.example.deemo;


import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {
    private ProgressBar progress;
    private Button add;
    private Button reduce;
    private Button reset;
    private TextView text;
    private ProgressDialog prodialog;//对话框进度条初始化
    private Button show;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //启用窗口特征,启用带进度和不带进度的
        requestWindowFeature(Window.FEATURE_PROGRESS);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
        
        setContentView(R.layout.main);
        //显示两种进度条
        setProgressBarVisibility(true);
        setProgressBarIndeterminateVisibility(false);
        setProgress(9999);//直进度条进度,最大量为10000
        init();
    }
    private void init() {
        progress=(ProgressBar) findViewById(R.id.horiz);
        add=(Button) findViewById(R.id.add);
        reduce=(Button) findViewById(R.id.reduce);
        reset=(Button) findViewById(R.id.reset);
        text=(TextView) findViewById(R.id.text);
        show=(Button) findViewById(R.id.show);
        show.setOnClickListener(this);//点击事件监听器
        
        int frist = progress.getProgress();//getProgress()获取第一进度条
        int second=progress.getSecondaryProgress();//获取第二进度条
        int max = progress.getMax();//获取最大进度
        
        text.setText("第一进度百分比"+(int)(frist/(float)max*100)+"% 第二进度百分比"+(int)(second/(float)max*100)+"%");
        //进度提示
        
        add.setOnClickListener(this);//设置监控器
        reduce.setOnClickListener(this);
        reset.setOnClickListener(this);
    }
    @Override
    //监听事件逻辑
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.add:{
            progress.incrementProgressBy(10);//增加第一进度十个
            progress.incrementSecondaryProgressBy(10);//增加第二进度十个
            break;
        }
        case R.id.reduce:{
            progress.incrementProgressBy(-10);//减少第一进度十个
            progress.incrementSecondaryProgressBy(-10);//减少第二进度十个
            break;
        }
        case R.id.reset:{
            progress.setProgress(10);
            progress.setSecondaryProgress(20);
            break;
        }
        case R.id.show:{
            prodialog=new ProgressDialog(MainActivity.this);//新建ProgressDialog对象
            prodialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置显示风格
            prodialog.setTitle("测试一下");//设置标题
            prodialog.setMessage("还是测试一下");//设置对话框内容
            prodialog.setIcon(R.drawable.ic_launcher);//图标设置
            
            prodialog.setMax(100);//设定最大进度
            prodialog.incrementProgressBy(10);//设定初始进度
            prodialog.setIndeterminate(false);//进度条的明确显示,true是不明确
            
            //设定确定按钮
            prodialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
                
                @Override
                public void onClick(DialogInterface arg0, int arg1) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, "依旧测试一下", Toast.LENGTH_SHORT).show();//显示文字信息
                }
            });
            prodialog.setCancelable(true);//是否可以通过返回按钮退出
            prodialog.show();//显示
            break;
        }
        }
        //每次点击完成动态更新
        text.setText("第一进度百分比"+(int)(progress.getProgress()/(float)progress.getMax()*100)+"% 第二进度百分比"+(int)(progress.getSecondaryProgress()/(float)progress.getMax()*100)+"%");
    };
    
}

不过只能显示初始进度还没有同步更新进度,留下来以后解决。

对话框进度条吧

标签:

原文地址:http://www.cnblogs.com/webgavin/p/5722197.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!