g.ask.csdn.net/upload/201710/28/1509174842_347823.png)
想实现这效果,但是我不知道把这Toast怎么处理才能在我的进度条对话框结束后显示出来。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button but1=(Button)findViewById(R.id.but1);
but1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
AlertDialog.Builder myDialog=new AlertDialog.Builder(MainActivity.this);
final View dialogView=LayoutInflater.from(MainActivity.this).inflate(R.layout.res,null);
myDialog.setTitle("登录界面");
myDialog.setView(dialogView);
myDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
final int Max_PROGRESS=5;
final ProgressDialog waitingDialog=new ProgressDialog(MainActivity.this);
waitingDialog.setMessage("登录中....");
waitingDialog.setCancelable(false);
waitingDialog.setIndeterminate(true);
waitingDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
waitingDialog.show();
new Thread(new Runnable(){
@Override
public void run(){
int progress=0;
while(progress<Max_PROGRESS){
try{
Thread.sleep(1000);
progress++;
waitingDialog.incrementProgressBy(progress);
}catch(InterruptedException e){
e.printStackTrace();
}
waitingDialog.cancel();
}
}
}).start();
}
});
myDialog.show();
}
});
}
在你的线程里面结束dialog的时候显示toast啊,就是在waitingDialog.cancel();后面加上Toast.makeText(getApplicationContext(), "登录成功",Toast.LENGTH_SHORT).show();
1 可以在大于进度大于100的时候使用handle发送消息,在handleMsg里显示toast,如果需要窗口结束再显示。可以给dialog设置onDismissListener()方法中显示toast
2直接在大于100时在线程里显示toast.不过需要先使用
Looper.prepare( ); 创建Looper
Looper.loop( ); 实现消息循环
再toast.show()
可以直接在while里面加个判断,如果等于100也就是进度条消失的时候就弹出toast
判断一下,进度条走完后也就是消失后,让他跳出,不过应该会出Bug