首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextWatcher计算

TextWatcher计算
EN

Stack Overflow用户
提问于 2014-07-03 14:23:18
回答 2查看 134关注 0票数 0
代码语言:javascript
复制
        TextWatcher watch = new TextWatcher(){

            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void beforeTextChanged(CharSequence a, int arg1,
                    int arg2, int arg3) {
                // TODO Auto-generated method stub
                EditText et1 = (EditText)findViewById(arg1);
            final int before = Integer.parseInt(et1.getText().toString());

            }

            @Override
            public void onTextChanged(CharSequence a, int arg1,
                    int arg2, int arg3) {
                // TODO Auto-generated method stub

                    int id = 1000 + arg1;
                    EditText et2 = (EditText)findViewById(id);

                    int x = Integer.parseInt(a.toString());
                    int y = Integer.parseInt(et2.getText().toString());
                    int sum = (x / before) * y;



                }

我想根据编辑文本的前一个条目自动更新编辑文本,并将其显示在另一个编辑文本上。

例如,

我有两个编辑文本。一个用于calories,另一个用于grams

如果我改变calories的值,grams也会相应地改变--

X是改变前的初始卡路里(在编辑文本1中),y是改变时的卡路里(在编辑文本1中),z是克值(在编辑文本2中),

等式应该是:y/x * z

EN

回答 2

Stack Overflow用户

发布于 2014-07-03 14:32:46

我想这会对你有帮助

代码语言:javascript
复制
package com.example.testandroid;

import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.widget.EditText;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        EditText e1 = (EditText) findViewById(R.id.e1);
        final EditText e2 = (EditText) findViewById(R.id.e2);
        e1.addTextChangedListener(new TextWatcher() {

            @Override
            public void afterTextChanged(Editable s) {
                String value = s.toString();
                e2.setText(value);
            }

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

            }

            @Override
            public void onTextChanged(final CharSequence s, int start,
                    int before, int count) {

            }

        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
票数 0
EN

Stack Overflow用户

发布于 2014-07-03 14:39:10

代码语言:javascript
复制
EditText ed1 = (EditText) findViewById(R.id.ed1);
    ed1.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable ed) {

            EditText ed2 = (EditText) findViewById(R.id.ed2);
            ed2.setText(ed.toString());
        }
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24546333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档