Android 无法更新内部进度栏和警报对话框生成器

Android 无法更新内部进度栏和警报对话框生成器,android,android-activity,android-fragments,progress-bar,progressdialog,Android,Android Activity,Android Fragments,Progress Bar,Progressdialog,我试图在警报对话框生成器中创建一个进度条,并尝试在使用线程和处理程序单击按钮时更新进度……但每次单击“开始”按钮时,它都会崩溃 package com.example.progressbar_thread; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.os.Handler; import android.view.View; impor

我试图在警报对话框生成器中创建一个进度条,并尝试在使用线程和处理程序单击按钮时更新进度……但每次单击“开始”按钮时,它都会崩溃

package com.example.progressbar_thread;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

public class MainActivity extends Activity implements OnClickListener {

Button Start;
int i = 0;
Handler myHandler = new Handler();
ProgressBar myProgressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Start = (Button) findViewById(R.id.StartButton);
    Start.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    // Alert dialog builder section 
    AlertDialog.Builder myDialogBuilder = new AlertDialog.Builder(this);
    myDialogBuilder.setTitle("Progress...");
    View ProgressView = getLayoutInflater().inflate(R.layout.progressbar,
            null);
    myProgressBar=(ProgressBar)findViewById(R.id.ProgressBar);   

    myDialogBuilder.setView(ProgressView);
    myDialogBuilder.create().show();

    new Thread(new Runnable() {

        @Override
        public void run() {

            // TODO Auto-generated method stub
            while (i < myProgressBar.getMax()) {

                myHandler.post(new Runnable() {

                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        myProgressBar.setProgress(i);   //Updading progress 

                    }

                });

                i++;

            }

        }
    }).start();

    }

    }enter code here
package com.example.progressbar\u线程;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.os.Bundle;
导入android.os.Handler;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.ProgressBar;
公共类MainActivity扩展活动实现OnClickListener{
按钮启动;
int i=0;
Handler myHandler=newhandler();
ProgressBar-myProgressBar;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
开始=(按钮)findViewById(R.id.StartButton);
Start.setOnClickListener(this);
}
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
//警报对话框生成器部分
AlertDialog.Builder myDialogBuilder=新建AlertDialog.Builder(此);
myDialogBuilder.setTitle(“进度…”);
View ProgressView=GetLayoutFlater()。充气(R.layout.progressbar,
无效);
myProgressBar=(ProgressBar)findViewById(R.id.ProgressBar);
myDialogBuilder.setView(ProgressView);
myDialogBuilder.create().show();
新线程(newrunnable()){
@凌驾
公开募捐{
//TODO自动生成的方法存根
而(i
您必须稍微更改代码

您必须更改以下行

 View ProgressView = getLayoutInflater().inflate(R.layout.progressbar,
        null);
myProgressBar=(ProgressBar)findViewById(R.id.ProgressBar);   

myDialogBuilder.setView(ProgressView);
myDialogBuilder.create().show();
到----


我希望它能帮助您….

请从LogCat添加stacktrace,现在如果不仔细阅读您的代码,就不可能知道它为什么会崩溃。
 View ProgressView = getLayoutInflater().inflate(R.layout.progressbar,
        null);
myProgressBar=(ProgressBar)ProgressView.findViewById(R.id.ProgressBar);   

myDialogBuilder.setView(myProgressBar);
myDialogBuilder.create().show();