android中的编辑框EditText也比较常用,那比如在搜索框中,没输入一个字,下面的搜索列表就显示有包含输入关键字的选项,这个输入监听怎么实现的呢?

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

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

先新建布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
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" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <!-- 编辑框 --> <EditText
android:id="@+id/id_edittext_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/alert_light"
android:textSize="10sp"
android:textColor="#ffff"
/> <TextView
android:id="@+id/id_textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#ffff"
/> <TextView
android:id="@+id/id_textview_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/hah"
android:textColor="#f000"
/> <TextView
android:id="@+id/id_textview_2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/hah"
android:textColor="#f000"
/> </LinearLayout>
</ScrollView> </LinearLayout>

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

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) {
/*++ 文本每次改变就会跑这个方法 ++*/
if(null != text_){
text_.setText("您正在输入......\n当前光标处在第 " + start
+" 个位置\n您选择处理了 " + before + " 个字符\n您这次输入的词语有 "
+ count + " 个字符");
} } @Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
/*++这里的count树枝上是和onTextChanged()里的before一样的
* after树枝上是和onTextChanged()里的count一样的 ++*/
if(null != text1_){
text1_.setText("您正在输入......\n当前光标处在第 " + start
+" 个位置\n您选择处理了 " + count + " 个字符\n您这次输入的词语有 "
+ after + " 个字符");
}
} @Override
public void afterTextChanged(Editable s) {
/*++这里显示出输入的字符串++*/
if(null != text2_){
text2_.setText(s);
}
} }); }
}

源代码:http://download.csdn.net/detail/zoeice/4399601

Android 监听EditView中的文本改变事件的更多相关文章

  1. 监听EditView中的文本改变事件详解--转

    转自: http://blog.csdn.net/zoeice/article/details/7700529 android中的编辑框EditText也比较常用,那比如在搜索框中,没输入一个字,下面 ...

  2. 【Android】Android 监听apk安装替换卸载广播

    [Android]Android 监听apk安装替换卸载广播 首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDE ...

  3. js 实时监听input中值变化

    注意:用到了jquery需要引入jquery.min.js. 需求: 1.每个地方需要分别打分,总分为100; 2.第一个打分总分为40; 3.第二个打分总分为60. 注意:需要判断null.&quo ...

  4. Android监听系统短信数据库变化-提取短信内容

    由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...

  5. 【转】Android开发20——单个监听器监听多个按钮点击事件

    原文网址:http://woshixy.blog.51cto.com/5637578/1093936 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律 ...

  6. Android监听ScrollView滑动到顶端和底部

    Android监听ScrollView滑动到顶端和底部     package cn.testscrollview; import android.os.Bundle; import android. ...

  7. Android 监听双卡信号强度(附完整代码)

    Android 监听双卡信号强度 监听单卡信号强度 监听单卡的信号强度非常简单直接用TelephonyManager.listen()去监听sim卡的信号强度. TelephonyManager = ...

  8. UITableView延伸:点击cell关闭键盘,加载不同cell,监听里面的textfeild内容改变

    其实点击cell关闭键盘只要一句话 - () {         cell = [tableView dequeueReusableCellWithIdentifier:){         cell ...

  9. Fragment-如何监听fragment中的回退事件与怎样保存fragment状态

    一.如何监听Fragment中的回退事件 1.问题阐述 在Activity中监听回退事件是件非常容易的事,因为直接重写onBackPressed()函数就好了,但当大家想要监听Fragment中的回退 ...

随机推荐

  1. 指针与strncpy---内存

    指针的形式的赋值和strncpy的赋值 e.SetAttr("Amt", ToString(dAmt)      ); e.SetAttr("Amt", sAm ...

  2. 上下问语句句柄Release地方

    OCI--在QUERY中 CLI--在FETCH中 在父类中定义了public—Release和protected—Release,protected—Release在public—Release中被 ...

  3. qml去标题栏

    只要加入"flags: Qt.Window | Qt.FramelessWindowHint "属性就可实现去标题栏. 注意:在使用这个属性的时候要先导入QtQuick.Windo ...

  4. Dao层和Service层设计

    1.Dao接口层 public interface IBaseDao<T, ID extends Serializable>{ public abstract Serializable s ...

  5. C# Json数据反序列化为Dictionary并根据关键字获取指定值

    Json数据: { "dataSet": { "header": { "returnCode": "0", " ...

  6. ubuntu server版连接vpn服务器

    命令行的方法: 1.要下载pptp的客户端    sudo apt-get install pptp-linux 2.创建连接     sudo pptpsetup –create vpn001 –s ...

  7. C# 判断点是否在多边形内

    /// <summary>/// 判断点是否在多边形内/// </summary>/// <param name="pnt">点</par ...

  8. Unity3d 如何找到游戏对象并改变其颜色

    //游戏对象 private var obj:GameObject; //渲染器 private var render:Renderer; //贴图 private var texture:Textu ...

  9. jQuery 点击按钮刷新页面

    //页面加载时绑定按钮点击事件 $(function () { $("#按钮id").click(function () { refresh(); }); }); //点击按钮调用 ...

  10. C#中用ILMerge将所有引用的DLL打成一个DLL文件

    有些文件是必须一起使用的,如果能把多个DLL打包成一个DLL文件,那么引用文件的时候就不需要一个个地去引用,而且每次移动文件的时候也不至于少了哪个必须的DLL文件. 多个DLL文件打包成一个DLL文件 ...