我想做一個Android應用程序&我需要知道如何重做一個動作,直到出現一些情況。 我試着這樣做:重做一個動作,並停止它的條件
while (!b.ButtonClicked()) {
doThisAction();
}
這將永遠不會停止(無窮大)因爲動作監聽器是外循環(同時),這樣的情況是不會得到滿足。 我希望你能理解我......
我想做一個Android應用程序&我需要知道如何重做一個動作,直到出現一些情況。 我試着這樣做:重做一個動作,並停止它的條件
while (!b.ButtonClicked()) {
doThisAction();
}
這將永遠不會停止(無窮大)因爲動作監聽器是外循環(同時),這樣的情況是不會得到滿足。 我希望你能理解我......
最好用一個標誌來達到目的。
//YourActivity
public static Boolean BUTTON_CLICKED_FLAG=false;
現在你可以使用這樣的函數
public initInfiniteLoop(){
//starts the loop
while(BUTTON_CLICKED_FLAG){
//your code here
}
}
在您的onClick()的按鈕方法只需撥動旗BUTTON_CLICKED_FLAG並啓動循環,如果它尚未啓動。
onClick(){
//first toggle the status
YourActivity.BUTTON_CLICKED_FLAG=!YourActivity.BUTTON_CLICKED_FLAG;
//then initiate loop if it is not already started
if(YourActivity.BUTTON_CLICKED_FLAG=true){
initInfiniteLoop();
//you can replace the if condition and function with the loop if you want.
}
}
如果循環已經運行,當我們將靜態值BUTTON_CLICKED_FLAG改爲false時,它將停止。
即使它可以工作,我寧願爲此目的的線程。
這是一個無限循環,問題是循環從一個按鈕開始,並從同一個按鈕停止。 –
檢查編輯 – JIthin
計數器變量設置爲0,並且按鈕的方法的onclick內將其值設置爲1。
while(c==0)
運行,而直到ç== 0檢查,並告訴我,如果它的工作原理
我試過這個,我不工作....問題是,clickListner等到循環完成... 因此,在您的解決方案,var「c」永遠不會得到值1 –
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// check condition: if true then do something
}
});
使用偵聽器而不是while循環。 –