【问题标题】:Is addTextChangedListener() still in the Android api?addTextChangedListener() 是否仍在 Android api 中?
【发布时间】:2022-01-26 02:59:48
【问题描述】:

我使用的是 2013 年的一本书,Android How To Program 2nd 版,作者是 Deitel 和 Harvey,他们使用 addTextChangedListener() 方法设置监听器对于TextWatcer,这个方法还在api中吗?

我在 Android 开发者文档中找不到任何相关信息。

//set amountEditText's TextWatcher
EditText amountEditText=(EditText) findViewById(R.id.amountEditText);
amountEditText.addTextChangedListener(amountEditTextWatcher);

【问题讨论】:

    标签: java android


    【解决方案1】:

    这个方法还在api中吗

    是的,you inherit it from TextViewEditText 的超类。

    【讨论】:

    • 你在哪里看到这个?它不在 Android 文档中 developer.android.com/reference/android/text/TextWatcher
    • 他给了你一个直接链接(你可以通过谷歌搜索方法名称找到)。
    • 我已经用谷歌搜索过了
    • 我已经尝试过谷歌搜索,这是我做的第一件事你尝试谷歌搜索它不在 android 文档中的方法名称
    • @CommonsWare 谢谢我确实尝试过谷歌搜索它没有出现在 android 文档中它只显示了 TextWatcher,我对 .setOnSeekBarChangeListener() 做了同样的事情我也找不到它的类堆栈上的投票系统太有趣了,我当然会尝试谷歌搜索
    【解决方案2】:

    我正在使用 Deitel 和 Harvey 于 2013 年出版的一本书,Android How To Program 2nd Edition,他们使用 addTextChangedListener() 方法为 TextWatcher 设置侦听器,是这个方法还在 API 中吗?

    您在问题中引用的代码是在 amountEditText 上调用 addTextChangedListener,这是一个 EditView 对象。换句话说,它将amountEditTextWatcher 设置为EditView 的文本观察器......就像评论所说的那样。

    您没有为观察者设置监听器。观察者是一种倾听者。您在(例如)视图上设置监听器/观察器。

    所以基本上,书中的代码并没有按照你的想法做。

    而你在TextWatcher 上找不到addTextChangedListener 的原因是那个接口从来没有有这样的方法。它是EditView 上的一个方法,继承自TextView

    【讨论】:

      【解决方案3】:

      是的,您可以查看此示例。

       yourEditText.addTextChangedListener(new TextWatcher() {  
            
                      @Override  
                      public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {  
                          System.out.println(cs); //This is your live editing text.
                      }  
            
                      @Override  
                      public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {  
                          Toast.makeText(getApplicationContext(),"before text change",Toast.LENGTH_LONG).show();  
                      }  
            
                      @Override  
                      public void afterTextChanged(Editable arg0) {  
                          Toast.makeText(getApplicationContext(),"after text change",Toast.LENGTH_LONG).show();  
                      }  
                  });  
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 2017-11-20
        • 2013-06-09
        • 2018-04-07
        • 2023-03-23
        • 2014-05-22
        相关资源
        最近更新 更多