接着手动增减进度条的代码,就是通过一个按钮弹出进度条对话框。
新建一个按钮,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)+"%"); }; }
不过只能显示初始进度还没有同步更新进度,留下来以后解决。
时间: 2024-10-14 12:30:53