android - onFocusChange 代码示例?

标签 android

我有一个包含 2 个字段的表单,您可以在其中输入月份或年份。我如何设置表单,以便如果您输入年份,月份 edittext 字段将自动计算并输入到它自己的框中。同样,如果您输入月份,我希望计算年份

谁能给我示例代码?

最佳答案

您有两种方法可以做到这一点:

  1. 对一个字段进行逐字符处理,计算出另一个字段

    为此,您可以将 addTextChangedListener 与文本观察器结合使用,您可以在其中更改 onTextChanged 方法来处理数据。

    //from editHandle = (EditText) findViewById(R.id. <<your EditText>> );
    
    editHandle.addTextChangedListener(redoWatcher);
    
    // listener
    private TextWatcher redoWatcher = new TextWatcher() {
    
    
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }
    
        @Override   
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            recalculate();
        }
    
        @Override
        public void afterTextChanged(Editable s) {
    
        }
    
    };
    

现在可以编写recalculate方法来处理数据了。

2。另一种方法是在用户将焦点转移到其他字段时计算数据。

这里需要使用onFocusChangeListener:

<Your EditView>.setOnFocusChangeListener(new OnFocusChangeListener() {

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        recalculate();
    }
});

无论哪种方式,根据您可能想要检查有效输入的设计。

关于android - onFocusChange 代码示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2841973/

相关文章:

android - 推送通知 ios 等效于 android

android - 在 android 中用自定义图像替换 Google Plus 登录按钮

java - 如何在 Android 中从 url 获取字节图像

android - 如何在 Phonegap 和 Android 3.2 下启用第三方 Cookie?

java - 如何在 Android 5.x (Lollipop) 上以编程方式为 Wi-Fi 连接配置静态 IP 地址、网络掩码、网关、DNS

android - 如何在 build.gradle 中指定 admob 库?

java - 望远镜构造函数的设计模式或依赖注入(inject)

java - 单选按钮包

android - "Error in retrofit api call"完成 observable 而不是让其他 observable 发出项目

c# - 如何从代码 Xamarin 将 TextView 添加到 StackView?