在Edittext android上显示onFocus的帮助信息

时间:2012-06-22 12:36:26

标签: android android-edittext

我想要显示一些帮助文本(就像在一个网页中聚焦一个字段时,显示关于该字段输入内容的非模态弹出窗口)。

我使用了EditText的android:hint属性,但如果文本很长则剪切文本。有没有内置或快速的方法吗?

3 个答案:

答案 0 :(得分:6)

在EditText下面添加一个包含提示的TextView。默认情况下,将其设置为不可见。

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
/>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="your hint message..."
/>

现在添加一个onFocusChangeListener以使TextView可见/不可见:

editText.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if(hasFocus){
            tvHint.setVisibility(View.VISIBLE);
        }else{
            tvHint.setVisibility(View.INVISIBLE);
        }
    }
});

答案 1 :(得分:0)

TextView下方EditText。实现edittext的onFocusListener,当编辑文本具有焦点时,将textView可见性设置为View.VISIBLE,这将显示帮助文本。当编辑文本失去焦点时,文本视图将不可见。

答案 2 :(得分:0)

您可以使用Custom Toast按摩或PopupWindow用于非模态弹出窗口,例如网页,看看这些内容有助于您创建自定义Toast和popupwindow

https://github.com/quiqueqs/Toast-Expander/blob/master/src/com/thirtymatches/toasted/ToastedActivity.java

http://www.mobilemancer.com/2011/01/08/popup-window-in-android/

并使用OnFocusChangeListener侦听器在用户点击EditView或发起焦点时进行跟踪

txtEdit.setOnFocusChangeListener(new OnFocusChangeListener() {          

        public void onFocusChange(View v, boolean hasFocus) {
            if(!hasFocus)
               //show Toast massages or PopupWindow     here           
        }
    });