我应该如何将 TextChangedListener 添加到 EditText 组件?

     2023-04-14     133

关键词:

【中文标题】我应该如何将 TextChangedListener 添加到 EditText 组件?【英文标题】:how should I add a TextChangedListener to an EditText component? 【发布时间】:2016-01-01 09:48:25 【问题描述】:

我是安卓编程新手。我遇到了一个问题,我很难应用本主题中给出的解决方案: How to format the input of EditText when typing with thousands separators (,) in Android?

到目前为止,我已经制作了一个单独的 Java 文件并将主要代码粘贴到其中,但我无法找到如何“将 editText.addTextChangedListener(new NumberTextWatcher(editText)); 添加到我的 EditText 组件”。 我的 XML EditText 如下所示:

        <EditText
        android:layout_
        android:layout_
        android:inputType="number"
        android:id="@+id/editText"
        android:layout_weight="1"

        />

【问题讨论】:

【参考方案1】:

您也可以为此使用Butterknife

@OnTextChanged(value = R.id.etName, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
public void nameChanged(CharSequence text) 
    //do stuff

更新:Kotlin 扩展

fun EditText.afterTextChanged(onAfterChangeText: (String) -> Unit) 
    this.addTextChangedListener(object : TextWatcher 
        override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) 
        

        override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) 
        

        override fun afterTextChanged(editable: Editable?) 
            onAfterChangeText(editable.toString())
        
    )

用法:

editText.afterTextChanged 
//do stuff

没有扩展的 Kotlin:

editText.doAfterTextChanged 
    //do stuff

【讨论】:

【参考方案2】:

首先,您需要在 Activity 或 Fragment 中找到 EditText 元素,例如:

EditText editText = (EditText) findViewById(R.id.editText);

那你应该可以了

editText.addTextChangedListener()

我建议你看看黄油刀库,http://jakewharton.github.io/butterknife/。如果你有很多听众,它会让你的代码更有条理。

你可以这样做

@OnTextChanged(R.id.editText)
public void listener() 

【讨论】:

【参考方案3】:

首先将 EditText 变量定义为你的类中的实例变量

private EditText mEditText; 

然后在某些地方,例如 onCreate 或 onViewCreated,您可以初始化您的 EditText 并添加监听器。

mEditText = (EditText)findViewById(R.id.edit_text);
mEditText.addTextChangedListener(new TextWatcher() 

    @Override
    public void afterTextChanged(Editable s) 

    

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) 

    

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) 
        // Get changed text s here and use it 
     

);

【讨论】:

【参考方案4】:

在Activity中,获取editText参考:

EditText et = (EditText) findViewById(R.id.editText);
et.addTextChangedListener(new TextWatcher() 
    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) 

    

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) 

    

    @Override
    public void afterTextChanged(Editable editable) 

    
);

【讨论】:

【参考方案5】:

用黄油刀

@OnTextChanged(value =  R.id.firstNameEditText, R.id.lastNameEditText ,
    callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED)
void inputName(EditText editText, Editable editable) 
// Greet user...

附言

http://craftedcourses.io/all-about-butter-knife-part-1/

【讨论】:

我应该如何将 TextChangedListener 添加到 EditText 组件?

】我应该如何将TextChangedListener添加到EditText组件?【英文标题】:howshouldIaddaTextChangedListenertoanEditTextcomponent?【发布时间】:2016-01-0109:48:25【问题描述】:我是安卓编程新手。我遇到了一个问题,我很难应用本主题中给出的解决... 查看详情

我应该如何将多个图像添加到视图中?

】我应该如何将多个图像添加到视图中?【英文标题】:HowshouldIaddmultipleimagestoaview?【发布时间】:2014-08-2720:27:43【问题描述】:这是我所拥有的视图的视觉效果。我面临的困境是如何在需要时最好地显示形状(圆形、方形等)... 查看详情

我应该如何将对象实例导入核心数据?

】我应该如何将对象实例导入核心数据?【英文标题】:HowshouldIimportobjectinstancesintoCoredata?【发布时间】:2012-02-0518:30:38【问题描述】:我创建了一个使用CoreLocation和反向地理编码的自定义LocationGenerator类,并生成(当被询问时... 查看详情

我应该如何将 DispatchGroup 用于两个 url 请求?

】我应该如何将DispatchGroup用于两个url请求?【英文标题】:HowshouldIuseDispatchGroupfortwourlrequests?【发布时间】:2019-05-2818:19:30【问题描述】:我正在使用DispatchGroup处理两个url请求,但没有得到任何数据。我在没有DispatchGroup的情况... 查看详情

我应该如何将我的非引导模式居中?

】我应该如何将我的非引导模式居中?【英文标题】:Howshouldicentermynonbootstrapmodal?【发布时间】:2021-06-0120:10:47【问题描述】:我希望将我的非引导模式垂直和水平居中。我该怎么做?我已经给出了我用过的HTMLCSS和JS代码。我现... 查看详情

我应该如何将代码放在 Java 的后台线程中?

】我应该如何将代码放在Java的后台线程中?【英文标题】:HowshouldIputcodeinBackgroundThreadinJava?【发布时间】:2021-07-2217:55:03【问题描述】:我正在使用将一些数据上传到服务器的API,我将其部署在android应用程序上。我使用Postman测... 查看详情

我应该如何将 Windows 用户 ID 存储在数据库中?

】我应该如何将Windows用户ID存储在数据库中?【英文标题】:HowshouldIstorewindowsuseridindatabase?【发布时间】:2012-06-2007:20:24【问题描述】:目前我在sqlserver中将用户的Windows帐户存储为nvarchar(10),这是存储用户ID的正确方法吗?数据... 查看详情

我应该如何命名将两个表映射在一起的表? [关闭]

】我应该如何命名将两个表映射在一起的表?[关闭]【英文标题】:WhatshouldInameatablethatmapstwotablestogether?[closed]【发布时间】:2010-12-2106:19:05【问题描述】:假设我有两张桌子:Table:ColorColumns:Id,ColorName,ColorCodeTable:ShapeColumns:Id,ShapeN... 查看详情

我应该如何将 Swagger 与 Hapi 一起使用?

】我应该如何将Swagger与Hapi一起使用?【英文标题】:HowshouldIuseSwaggerwithHapi?【发布时间】:2016-06-2915:33:02【问题描述】:我有一个正常工作的普通Hapi应用程序,我计划迁移到Swagger。我使用官方说明安装了swagger-node,并在执行\'s... 查看详情

我应该如何将多个控件添加到 WPF 窗口? [复制]

】我应该如何将多个控件添加到WPF窗口?[复制]【英文标题】:HowshouldIaddmultiplecontrolstoaWPFwindow?[duplicate]【发布时间】:2021-03-2916:24:38【问题描述】:免责声明,我对WPF比较陌生。目前,每当我在设计器上放置另一个控件时,所... 查看详情

Eclipse RCP:我应该将模型对象保存在哪里以及它们如何与视图对话?

】EclipseRCP:我应该将模型对象保存在哪里以及它们如何与视图对话?【英文标题】:EclipseRCP:WhereshouldIkeepmymodelobjectsandhowdotheytalktotheviews?【发布时间】:2010-09-2114:16:32【问题描述】:在EclipseRCP的处理方式中,我应该将模型对象... 查看详情

我应该如何将 JpaRepository.findOne() 与 SpringBoot 一起使用?

】我应该如何将JpaRepository.findOne()与SpringBoot一起使用?【英文标题】:HowshouldIuseJpaRepository.findOne()withSpringBoot?【发布时间】:2019-05-3116:53:21【问题描述】:我刚刚通过阅读SpringBootinAction一书开始学习SpringBoot,并且我正在学习本... 查看详情

我应该将 Angularjs 文件保存在我的 Web 应用程序中的啥位置,我应该如何构建我的路由和资源? [关闭]

】我应该将Angularjs文件保存在我的Web应用程序中的啥位置,我应该如何构建我的路由和资源?[关闭]【英文标题】:WhereshouldIkeeptheAngularjsfilesinmywebapplicationandhowshouldIstructuremyroutesandresources?[closed]我应该将Angularjs文件保存在我的Web... 查看详情

我应该如何将 javascript 函数调用到 kohana 视图中?

】我应该如何将javascript函数调用到kohana视图中?【英文标题】:howshouldicallajavascriptfunctionintoakohanaview?【发布时间】:2011-02-0908:24:17【问题描述】:我有一个简单的kohana视图和一个倒计时30分钟的javascript。我已经将javascript文件放... 查看详情

我应该如何将密码(包含特殊字符)作为命令行参数传递?

】我应该如何将密码(包含特殊字符)作为命令行参数传递?【英文标题】:Howshouldipassthepassword(containingspecialchars)ascommandlineargument?【发布时间】:2014-07-0914:41:17【问题描述】:我有一个部署脚本,我必须将LDAP密码作为cmd参数传... 查看详情

我应该如何将表名传递到存储过程中?

】我应该如何将表名传递到存储过程中?【英文标题】:HowshouldIpassatablenameintoastoredproc?【发布时间】:2009-08-0720:09:37【问题描述】:我刚刚遇到了一件奇怪的事情......我们网站上的一些代码正在使用一个巨大的SQL语句,通过基... 查看详情

我应该如何将值添加到具有部分参数的结构中

】我应该如何将值添加到具有部分参数的结构中【英文标题】:howshouldIaddvaluestostructureswithpartialargumentsinsolidity【发布时间】:2021-06-2920:07:49【问题描述】:contractClusterHeadNodestructClusterNodestringname;string[]ordinarynodes;mapping(string=>Clu... 查看详情

java示例代码_我应该如何将这些数据存储在Java枚举中

java示例代码_我应该如何将这些数据存储在Java枚举中 查看详情