求高手回答解疑,这个错误要怎么修改??(eclipse开发android程序)

姜仁友 发布于 2012/08/08 21:57
阅读 378
收藏 0
package my.test;

import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	private Button button1,button2;
	private ProgressDialog my_pro_dialog;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity01);
        button1=(Button)findViewById(R.id.button1);
       button1.setOnClickListener(new OnClickListener() {
		
		public void onClick(View v) {
			// TODO Auto-generated method stub
			    my_pro_dialog=new ProgressDialog(MainActivity.this);
				//设置进度条风格为圆形
				my_pro_dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
				//设置进度条的标题
				my_pro_dialog.setTitle("提示");
				//设置进度条的提示信息
				my_pro_dialog.setMessage("这是一个圆形进度条");
				//设置进度条是否不明确
				my_pro_dialog.setIndeterminate(false);
				//设置进度条是否可以按退回键取消
				my_pro_dialog.setCancelable(true);
				//给进度条设置一个Button,并设置监听器
			    my_pro_dialog.setButton("确定",new DialogInterface.OnClickListener(){
					
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
					    dialog.cancel();	
					}
				});
			    //让进度条显示
			    my_pro_dialog.show();
				
			
		}
	});
       button2=(Button)findViewById(R.id.button2);
       button2.setOnClickListener(new OnClickListener() {
		
		public void onClick(View v) {
			// TODO Auto-generated method stub
			int m_count=0;
			my_pro_dialog=new ProgressDialog(MainActivity.this);
			//设置进度条风格为圆形
			my_pro_dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
			//设置进度条的标题
			my_pro_dialog.setTitle("提示");
			//设置进度条的提示信息
			my_pro_dialog.setMessage("这是一个长形对话框进度条");
			//设置进度条是否不明确
			my_pro_dialog.setIndeterminate(false);
			//设置进度条是否可以按退回键取消
			my_pro_dialog.setCancelable(true);
			//显示进度条
			 my_pro_dialog.show();
			 //加上下面注释的语句,程序就会报错,暂时找不到原因
			 new Thread(){
				 public void run(){
					 try{
						 while(m_count<=100){//这里显示有错误 							 //线程控制进度条
							 my_pro_dialog.setProgress(m_count++);//
这里显示有错误
Thread.sleep(100); } my_pro_dialog.cancel(); } catch(InterruptedException e){ my_pro_dialog.cancel(); } } }.start(); } }); } }
错误如图片所示(在上面代码区我用红色字体标出来了),我找不出来哪里出错了,按照提示修改了还是不对。各位高人
看看应该修改哪里??
 

 

加载中
0
逝水fox
逝水fox

方法内部的匿名内部类要访问所在方法的局部变量时,这个变量定义时必须是final修饰的。

如果如你代码里面所写的一样需要对这个变量进行修改的话,final是不可能的,解决方法可以是不要用匿名类,声明是普通的内部类,然后所访问的变量由构造函数传入,变成内部类的成员来处理

姜仁友
姜仁友
的确,我现在把变量申明语句直接放在了调用变量的方法里面,现在正常了
返回顶部
顶部