如何解决吐司未出现在屏幕上
| 对于5000毫秒,我正在显示一个对话框。关闭对话框后,应该显示烤面包,但不显示,为什么我没有得到?怎么办? 帮助总是很感激..! signin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// showDialog(0);
t = new Thread() {
public void run() {
register();
try {
while(counter<1){
showmsg(0);
Thread.sleep(5000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
t.start();
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0: {
++counter;
dialog = new ProgressDialog(this);
if(counter==1){
dialog.setMessage(\"Registering...\");
}
else{
Context context = getApplicationContext();
CharSequence text = \"Hello toast!\";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context,text,duration);
toast.show();
}
dialog.setIndeterminate(true);
dialog.setCancelable(true);
return dialog;
}
}
return null;
}
public void showmsg(int actionsToBePerformedOnScreen) {
Message msg = new Message();
msg.what = actionsToBePerformedOnScreen;
handler.sendMessage(msg);
}
public Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
showDialog(0);
break;
case 1:
// clear all images in the list
removeDialog(0);
break;
}
};
};
解决方法
您正在尝试以
onCreateDialog
方法显示您的Toast,并且它以counter!=1
为条件。 dialog1 called在显示对话框时不被调用,而仅在创建对话框时被调用。它只被调用一次,所以Toast永远不会出现。
我相信您正在尝试运行该线程,在运行时显示进度并关闭它,并在完成时显示Toast。在这种情况下,要实现目标,更简单,更正确的方法是使用AsyncTask
。在此处阅读有关内容:http://developer.android.com/reference/android/os/AsyncTask.html
随时问更多问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。