我有三个 Edittext 字段 ed1、ed2、ed3。当用户单击 ed2 / ed3 时,我打开了对话框并从该对话框中获取输入。对于第一次单击光标来到编辑文本框,并且仅在下一次单击时,我可以打开对话框以获取输入。我需要显示第一次单击的对话框。
问问题
10404 次
4 回答
20
将 EditText 设置为 unFocusable。这样,第一次触摸注册为点击。
在有问题的 EditText(s) 的 XML 中添加:
android:focusableInTouchMode="false"
于 2012-04-20T14:32:02.843 回答
2
为什么不使用 Button 来代替.. 而是将其背景设置为默认 EditText..
于 2012-04-20T13:52:40.780 回答
1
这就是 EditText 的行为方式。他们必须首先集中注意力才能触发onClick
事件。
编辑:就像巴拉克指出的那样,您可以禁用“可聚焦性”,并且可以一键打开它。缺点是您将无法在 EditText 上键入(这可能适合您的用例)。
于 2012-04-20T13:51:37.287 回答
0
为了保持可EditText
打字,你可以做一个小技巧。
如果只需要Dialog
在第一次打开然后EditText
正常使用你可以这样做:
public class EditTextActivity extends Activity {
EditText et1;
int clickCount = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et1 = (EditText) findViewById(R.id.main_et1);
et1.setFocusableInTouchMode(false);
setOnClickListeners();
private void setOnClickListeners(){
location.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (clickCount == 0){
OpenDialog(); //Call the function to open the dialog created by you
et1.setFocusableInTouchMode(true);
}
clickCount = 1;
}
});
}
于 2012-07-27T22:20:34.027 回答