2011-11-30 35 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触发两次,离开关键

相关问题