«

androidの监听EditView中的文本TextWatcher

时间:2024-3-2 19:07     作者:韩俊     分类: Android


android中的编辑框EditText每输入一个字,下面的搜索列表就显示有包含输入关键字的选项,这个输入监听怎么实现的呢?

我们可以建一个例子,效果图如下:


我们可以监听光标处在哪个位置,选择了几个字符并处理,输入了几个字符

先新建布局文件

[html] view
plaincopy

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&quot;
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/af">
<!-- 上下滚动 -->
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

    &lt;LinearLayout  
        android:layout_width=&quot;fill_parent&quot;  
        android:layout_height=&quot;fill_parent&quot;  
        android:orientation=&quot;vertical&quot; &gt;  

        &lt;!-- 编辑框 --&gt;  
        &lt;EditText  
            android:id=&quot;@&#43;id/id_edittext_1&quot;  
            android:layout_width=&quot;fill_parent&quot;  
            android:layout_height=&quot;wrap_content&quot;   
            android:background=&quot;@drawable/alert_light&quot;  
            android:textSize=&quot;10sp&quot;  
            android:textColor=&quot;#ffff&quot;/&gt;  

        &lt;TextView   
            android:id=&quot;@&#43;id/id_textview&quot;  
            android:layout_width=&quot;fill_parent&quot;  
            android:layout_height=&quot;wrap_content&quot;   
            android:textColor=&quot;#ffff&quot;/&gt;  

        &lt;TextView   
            android:id=&quot;@&#43;id/id_textview_1&quot;  
            android:layout_width=&quot;fill_parent&quot;  
            android:layout_height=&quot;wrap_content&quot;   
            android:background=&quot;@drawable/hah&quot;  
            android:textColor=&quot;#f000&quot;/&gt;  

        &lt;TextView   
            android:id=&quot;@&#43;id/id_textview_2&quot;  
            android:layout_width=&quot;fill_parent&quot;  
            android:layout_height=&quot;wrap_content&quot;   
            android:background=&quot;@drawable/hah&quot;  
            android:textColor=&quot;#f000&quot;  /&gt;   
    &lt;/LinearLayout&gt;  
&lt;/ScrollView&gt;  

</LinearLayout>

然后在代码中对编辑框绑定输入监听事件:

[java] view
plaincopy

public class EditTextTestActivity extends Activity {
/*编辑框/
private EditText edit1;
/*文本/
private TextView text
;
private TextView text1;
private TextView text2
;

/** Called when the activity is first created. */  
@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);    
    /*设置当前页面的布局*/  
    setMyLayout();  
}  

/** 
 * 设置当前页面的布局 
 */  
private void setMyLayout(){  
    /*取得文本*/  
    text_ = (TextView)findViewById(R.id.id_textview);  
    text1_ = (TextView)findViewById(R.id.id_textview_1);  
    text2_ = (TextView)findViewById(R.id.id_textview_2);       
    /*取得编辑框*/  
    edit1_ = (EditText)findViewById(R.id.id_edittext_1);  
    /*监听 编辑框中的文本改变事件*/  
    edit1_.addTextChangedListener(new TextWatcher() {  

        @Override  
        public void onTextChanged(CharSequence s, int start, int before, int count) {  
            /*&#43;&#43; 文本每次改变就会跑这个方法 &#43;&#43;*///这里count

是 当前输入字符个数
if(null != text){
text
.setText("您正在输入......n当前光标处在第 " + start
+" 个位置n您选择处理了 " + before + " 个字符n您这次输入的词语有 "
+ count + " 个字符");
}
}

        @Override  
        public void beforeTextChanged(CharSequence s, int start, int count,  
                        int after) {  
            /*&#43;&#43;这里的count树枝上是和onTextChanged()里的before一样的 
             * after树枝上是和onTextChanged()里的count一样的 &#43;&#43;*/  
            if(null != text1_){  
                text1_.setText(&quot;您正在输入......n当前光标处在第 &quot; &#43; start  
                        &#43;&quot; 个位置n您选择处理了 &quot; &#43; count &#43; &quot; 个字符n您这次输入的词语有 &quot;  
                        &#43; after &#43; &quot; 个字符&quot;);  
            }  
        }  

        @Override  
        public void afterTextChanged(Editable s) {  
            /*&#43;&#43;这里显示出输入的字符串&#43;&#43;*/  
            if(null != text2_){  
                text2_.setText(s);  
            }  
        }        
});  
}  

}

然后就ok了,很多地都可以用到这个办法。

转载自:http://blog.csdn.net/zoeice/article/details/7700529


标签: android

热门推荐