如果某个条件为toast
或true
,我希望显示false
。但是,在显示之前,我希望delay
为two seconds
干杯。
我该怎么做?
当前if声明:
if (result.equals("true")) {
loginDataBaseAdapter.updateUploadedRecord(sessionId);
Toast.makeText(MathsGameResults.this,
"Data is successfully uploaded.",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(
MathsGameResults.this,
"Error while uploading. Please try again later.",
Toast.LENGTH_LONG).show();
}
}
答案 0 :(得分:7)
试试这个..
使用Handler
// Handler which will run after 2 seconds.
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(MathsGameResults.this,
"Data is successfully uploaded.",
Toast.LENGTH_LONG).show();
}
}, 2000);
答案 1 :(得分:0)
延迟代码可能并不总是成功,尤其是在RAM较低的设备上。这是你可以做的。
定义此变量
boolean result;
如果数据成功上传,请在loginDataBaseAdapter
代码末尾添加此代码
result = true;
showResult(result);
然后添加此方法 -
public void showResult(boolean i){
if (result == true;) {
loginDataBaseAdapter.updateUploadedRecord(sessionId);
Toast.makeText(
MathsGameResults.this,
"Data is successfully uploaded.",
Toast.LENGTH_LONG
).show();
} else {
Toast.makeText(
MathsGameResults.this,
"Error while uploading. Please try again later.",
Toast.LENGTH_LONG
).show();
}
}
无论如何,这里是如何延迟代码 -
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (result == true;) {
loginDataBaseAdapter.updateUploadedRecord(sessionId);
Toast.makeText(
MathsGameResults.this,
"Data is successfully uploaded.",
Toast.LENGTH_LONG
).show();
} else {
Toast.makeText(
MathsGameResults.this,
"Error while uploading. Please try again later.",
Toast.LENGTH_LONG
).show();
}
}
}, 5000);