我有三个Edittext字段ed1,ed2,ed3。当用户点击ed2 / ed3时,我打开了对话框,并从该对话框中获取输入。对于第一次单击光标进入edittext框,只有下一次单击,我可以打开对话框获取输入。我需要显示第一次点击的对话框。
答案 0 :(得分:17)
将EditText设置为unFocusable。这样第一次触摸即可点击。
在您所使用的EditText的XML中添加:
android:focusableInTouchMode="false"
答案 1 :(得分:2)
为什么不使用Button而是..但将其背景设置为默认的EditText ..
答案 2 :(得分:1)
这就是EditText的行为方式。他们必须首先关注以触发onClick
事件。
编辑: 就像Barak指出的那样,您可以禁用“可聚焦性”,只需单击一下即可打开它。缺点是你将无法输入EditText(这可能适用于你的用例)。
答案 3 :(得分: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;
}
});
}