2014-07-11 37 views
0

我正在開發一個Android應用程序,Eclipse IDE + ADT,目標API編號爲17,並在BlueStacks上進行調試。 我有一個按鈕的點擊觸發某些動作,對我使用的方法在活動課,並在XML代碼中,我使用這個:android:onClick雙擊工作

android:onClick="myCoolMethod" 

而且它似乎工作確定,但是它在第二次點擊按鈕後總是有效。 我的問題是: 這應該是這種方式給定的屬性?如果是這樣,是否有另一個屬性可以響應第一次點擊? 如果沒有,爲什麼它沒有響應第一次點擊,我能做些什麼來解決它?

在迴應評論:

public void myCoolMethod(View v){ 
    Button btn = (Button) findViewById(R.id.button1); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (v==findViewById(R.id.button1)){ 
      Intent inta = new Intent(MainActivity.this, datainsert.class); 
      startActivity(inta); 
      } 
     } 
    }); 

是的,它是一個獨立的按鈕。

+4

不,這不是它應該如何工作。我懷疑'myCoolMethod()'有問題。請發佈其代碼。我還建議設置一個斷點或給'myCoolMethod()'添加一個'Log.d()'調用來檢查它何時被調用。 –

+0

「myCoolMethod」是線程還是一個簡單的方法,請問這個方法嗎? – DJhon

+0

當然,我會發布它 – user3827605

回答

0

您正在設置點擊監聽器兩次!從我的酷方法刪除點擊監聽器,它會工作

public void myCoolMethod(View v){ 
     Intent inta = new Intent(MainActivity.this, datainsert.class); 
     startActivity(inta); 
} 

我希望你明白爲什麼會發生這種情況。你首先在XML中設置onclick。然後在第一次點擊發生後再次設置(僅此一次),以覆蓋第一次點擊。所以只有在第二次點擊後才發送意圖。程序功能按預期進行。只是使用上面的代碼來修復

+0

我懷疑是在那裏的錯誤,但我試圖修復它在過去和隨機錯誤開始顯示在logcat。 但是,我再次嘗試aaaaand魔術!有效。 謝謝,愛你,好先生♥ – user3827605

-1

此按鈕是否在ListView項目內?或者這個按鈕是獨立的嗎? 有時它與ListView onItemClick相沖突,類似於複選框和ListView onItemClick。

Button btnSearch = (Button) findViewById(R.id.button_Search);    
btnSearch.setOnClickListener(new View.OnClickListener() 
{   
    @Override 
    public void onClick(View v) 
    { 
     // Do Button Clicked  
    }   
});