OnClickListener仅在第二次侦听

时间:2011-12-06 09:23:05

标签: android android-edittext

我有一个editText,并为其添加了一个onClickListener。在点击方法中,我只是清除文本。当我第一次单击editText键盘弹出时。但它没有进入onClick方法。第二次点击它时,它会被调用并清除文本。

qtyEditTxt=(EditText)findViewById(R.id.qtyet);
qtyEditTxt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                qtyEditTxt.setText("");             
            }
        });

我看到一个问题,回答说要将android:focusableInTouchMode设为false。但那时我将无法输入文字。请帮助我

4 个答案:

答案 0 :(得分:4)

焦点怎么样?

final EditText qtyEditTxt= (EditText) findViewById(R.id.qtyet);
qtyEditTxt.setOnFocusChangeListener(new OnFocusChangeListener()
{
    @Override
    public void onFocusChange(View v, boolean isFocus) 
    {
        if (isFocus)
        {
            qtyEditTxt.setText("");             
        }
    }
});

编辑:

默认文字?你去了:))

android:hint="Enter Quantity"

答案 1 :(得分:2)

您尝试拥有的行为与EditText的现有功能非常相似。

看看: http://developer.android.com/reference/android/widget/TextView.html#attr_android:hint

答案 2 :(得分:1)

ClickListener不是editText的不错选择。使用

editText.setOnEditorActionListener(new TextWatcher() {

            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub

            }

            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub

            }

            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub

            }
        })
    }

答案 3 :(得分:0)

在layout.xml文件中关闭EditText标记后立即添加<requestFocus />