我想问一下,如果有更好的方法在android中多次调用方法。
但我真正想知道的是,如何延迟哪一次 showToas("Message 1");
来电,只有在拨打下一个电话后才会延迟。
由于
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
showToas("Message 1");
showToas("Message 2");
showToas("Message 3");
showToas("Message 4");
showToas("Message 5");
showToas("Message 6");
showToas("Message 7");
...
private void showToas(String message){
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
更新
这是我设法让它工作的地方。 给每个方法调用5秒休息,但我认为最好的方法是实现这个功能吗?你能告诉我吗?感谢
private void CallMultipleToast(){
Runnable call_1 = new Runnable() {
@Override
public void run() {
Toast("Message one");
Runnable call_2 = new Runnable() {
@Override
public void run() {
Toast("Message two");
Runnable call_3 = new Runnable() {
@Override
public void run() {
Toast("Message three");
//CAN I ADD MORE
}
};//end call_3
new Handler().postDelayed(call_3, 5000);
}
};//end call_2
new Handler().postDelayed(call_2, 5000);
}
};//end call_1
new Handler().postDelayed(call_1, 5000);
}
答案 0 :(得分:2)
试试这种方式
Runnable r2=new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
showToas("Message 1");
}
};
new Handler().postDelayed(r2,1000);
为其他人做同样的事情并增加时间延迟
答案 1 :(得分:1)
您可以使用Timer
:
//global variable counter
int counter = 1;
Timer t = new Timer();
t.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
showToas("Message "+counter);
counter++;
}
}, 0, 10000); //It will be repeated every 10 seconds
希望这有帮助。
答案 2 :(得分:0)
runOnUiThread(new Runnable() {
public void run() {
try {
for(String str : array){
showToast(str);
Thread.sleep(10000L);
}
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
答案 3 :(得分:0)
public class ToastShow {
private Context context;
private Toast toast = null;
public ToastShow(Context context) {
this.context = context;
}
public void toastShow(String text) {
if(toast == null)
{
toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
}
else {
toast.setText(text);
}
toast.show();
}
}
你可以多次调用toastShow(String text)它只改变toast的内容