我目前正在爲Android手機制作的應用程序出現問題。我有一個有兩個按鈕的活動。關鍵是如果我按兩個按鈕足夠快(這不是一個好的用戶行爲),那兩個按鈕會觸發,而我只想發射(最多)只有其中一個按鈕。這是一個代碼片段比如我的意思:Android:將setOnClickListener設置爲按鈕。當按下太快時觸發兩次
public class ActivityLevels extends Activity {
private boolean launched;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Set the content view of the screen
setContentView(R.layout.levels);
//Set lauched flag to false
launched = false;
//Initialize buttons
Button loadLevel01 = (Button) findViewById(R.id.ButtonLoadLevel01);
Button loadLevel02 = (Button) findViewById(R.id.ButtonLoadLevel02);
//Set Button Listeners
loadLevel01.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
launchGame(0);
}
});
loadLevel02.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
launchGame(1);
}
});
}
private void launchGame(int level) {
//Just launch the activity if !lanched
if(!launched) {
launched = true;
//Start Activity
}
}
}
我一直在檢查一個星期左右的互聯網,並沒有發現任何的方法來防止這種情況。據我發現,看起來像有人已經發布了類似的問題在這裏:Issue 20073: Button onClick listener can be fired twice even if button is disabled immediately in listener
順便說一句,我也試過在「launchGame(int)」調用之前立即禁用按鈕,但沒有取得了一切。 此代碼只是整個活動的改編片段。我認爲可以理解我的意思,但如果您需要其他描述,請告訴我。
在此先感謝,並對任何拼寫錯誤感到抱歉,我的英文不是很好。
確保您將答案標記爲「已接受」,以便其他人可以瞭解您的解決方案。乾杯〜 –