首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到符号addTextChangedListener

找不到符号addTextChangedListener
EN

Stack Overflow用户
提问于 2013-08-30 02:38:18
回答 2查看 2.8K关注 0票数 0

我和addTextChangedListener有问题。我有两个编辑文本(edittext1和edittext2),当添加或更改文本(在本例中为数字)时,我需要它来运行计算,并将其输出到一个名为resultstext的文本视图中。

我已经找到了许多例子,并对它们进行了修改,以完成我需要它们做的事情,但是当我调用editText1.addTextChangedListener.inputTextwatcher;时,它告诉我它找不到符号addTextChangedListener。下面是代码,如何纠正这一点?

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

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.view.FocusFinder;
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);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

private android.widget.EditText editText1;
private android.widget.EditText editText2;
private android.widget.TextView resultsText;


private void onItemSelected() {
editText1 = (EditText)findViewById(R.id.textView13);
editText2 = (EditText)findViewById(R.id.textView15);
resultsText = (android.widget.TextView)findViewById(R.id.textView16);
}


  android.text.TextWatcher inputTextWatcher = new android.text.TextWatcher()

{
    public void afterTextChanged(android.text.Editable s) {
        calculateResult();
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){}
    public void onTextChanged(CharSequence s, int start, int before, int count){}
};

editText1.addTextChangedListener.inputTextWatcher;
editText2.addTextChangedListener.inputTextWatcher;

private void calculateResult() throws NumberFormatException {

    Editable editableValue1 = editText1.getText(),
            editableValue2 = editText2.getText();

    double value1 = 0.0,
            value2 = 0.0,
            result;

    if (editableValue1 != null)
        value1 = Double.parseDouble(editableValue1.toString());

    if (editableValue2 != null)
        value2 = Double.parseDouble(editableValue2.toString());

    result = ((0.5 * value1) / 6.1) * value2;


    resultsText.setText(String.valueOf(result));
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-30 03:16:55

放置你的一些代码是错误的。我已经试着修好它了。看看以下内容是否适合您:

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

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

public class MainActivity extends Activity {

private android.widget.EditText editText1;
private android.widget.EditText editText2;
private android.widget.TextView resultsText;

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

    editText1 = (EditText)findViewById(R.id.textView13);
    editText2 = (EditText)findViewById(R.id.textView15);
    resultsText = (android.widget.TextView)findViewById(R.id.textView16);

    android.text.TextWatcher inputTextWatcher = new android.text.TextWatcher() {
        public void afterTextChanged(android.text.Editable s) {
            calculateResult();
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after){}
        public void onTextChanged(CharSequence s, int start, int before, int count){}
    };

    editText1.addTextChangedListener(inputTextWatcher);
    editText2.addTextChangedListener(inputTextWatcher);        
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}   

private void calculateResult() throws NumberFormatException {

    Editable editableValue1 = editText1.getText();
    Editable editableValue2 = editText2.getText();

    double value1 = 0.0,
            value2 = 0.0,
            result;

    if (editableValue1 != null)
        value1 = Double.parseDouble(editableValue1.toString());

    if (editableValue2 != null)
        value2 = Double.parseDouble(editableValue2.toString());

    result = ((0.5 * value1) / 6.1) * value2;


    resultsText.setText(String.valueOf(result));
}
}
票数 1
EN

Stack Overflow用户

发布于 2013-08-30 02:53:33

试着使用

代码语言:javascript
复制
           private TextWatcher watcher = new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int start, int before,
            int count) {
        //your code here
    }

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

    @Override
    public void afterTextChanged(Editable s) {
    }
};

然后将观察者添加到编辑文本中。

代码语言:javascript
复制
       youredittext.addTextChangedListener(watcher);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18524078

复制
相关文章

相似问题

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