2011-11-30 36 views
12

我有以下分配代碼TextView的TextView的onClick不響應一個水龍頭

Answer1TextView = (TextView) findViewById(R.id.editText1); 
Answer1TextView.setOnClickListener(answer1TextViewListener); 

這裏是我onClickListener:

private OnClickListener answer1TextViewListener = new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     if(Answer1Win){ 
      Toast.makeText(QuizScreen.this,"Correct ",2).show(); 
     } else 
     { 
      Toast.makeText(QuizScreen.this,"Incorrect, Pick Another Answer",2).show(); 
     } 
    } 
}; 

我的問題是敬酒後只顯示雙擊。我無法找到一個設置驅動器這種行爲,什麼可能被設置錯誤,不會顯示一次輕按後。

+0

是否爲正確和不正確的工作,即使經過2個水龍頭? – JustCurious

回答

23

第一次點擊只是將焦點設置到文本框,然後第二次點擊實際上被作爲點擊處理。而不是使用onClickListener,你可能有更好的運氣與onFocusChangeListener

+28

或者,只需在XML中將「android:focusable =」false「'設置爲TextView,或者調用'Answer1TextView.setFocusable(false);'。 – kcoppock

+1

KC,.setFocusable(false);解決了問題,謝謝你的幫助。 –

+0

KC感謝您的建議。 .setFocusable(假);爲我工作。大。繼續發佈有用的東西。再次感謝 – sathish

1

正如克里斯說,第一次輕觸重點TextView第二接頭點擊它。

設置android:focusableInTouchMode="false"可修復觸摸屏問題,但不會損壞非觸摸屏設備的功能。

如果您只是簡單地使用android:focusable="false",例如防止d-pad用戶單擊的視圖

+0

android:focusable =「false」爲我工作! +1 – dira

+0

在我看來,d-pad在當今世界並非真正相關。就我所知,我不認爲'focusable =「false」'會阻止任何禁用用戶的功能。 – CorayThan

+0

@CorayThan鑑於這兩個屬性同樣很容易設置,所以我個人寧願選擇不破壞某些設備功能的設備 - 即使這些設備目前不太常見。事情發生變化(例如,android電視可能會變得更加普遍),並假設你的用戶都是觸摸屏,這很可能會在未來引起頭痛 - 在這種情況下,無論如何都沒有直接的好處。 (免責聲明:我沒有及時瞭解Android的情況,所以假設這些屬性仍然按照他們以前寫的答案進行操作) –

0

正確的方式做到這一點是android:clickable="true"

+0

默認情況下TextView是可點擊的。這可能不是問題。 – greg7gkb

+0

我試過了,因爲我遇到同樣的問題。把^,解決我的問題。我的TextView只需要1次點擊即可響應。 –

1

問題可能是textIsSelectable是真實的。爲XML中的TextView設置textIsSelectable="false"。當你進入

0

使用OnTouchListener代替onFocusListener觸發兩次,離開關鍵

相關問題