首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android EditText.addTextChangedListener不工作

Android EditText.addTextChangedListener不工作
EN

Stack Overflow用户
提问于 2016-12-07 20:10:53
回答 1查看 6.7K关注 0票数 2

我有一个应用程序,我已经实现了片段寻呼机适配器,用于使用片段扫描页面。然后,在片段上,它有一个EditText和一个TextView。我想将EditText.addTextChangedListener实现到片段中,所以在MainActivity.java

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

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;

import layout.page1;
import layout.page2;

public class MainActivity extends AppCompatActivity {

ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(new SamplePagerAdapter(
            getSupportFragmentManager()));

}


public class SamplePagerAdapter extends FragmentPagerAdapter {

    public SamplePagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {

        if (position == 0) {
            return new page1();
        } else 
            return new page2();
    }

    @Override
    public int getCount() {
        return 2;
    }
}

}

我的fragment.java

代码语言:javascript
复制
package layout;


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.Editable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;

import testing.com.testing.R;


public class page1 extends Fragment {


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.page1, container,
            false);
    return rootView;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    EditText text;
    TextView textv;
    text = (EditText) getView().findViewById(R.id.p1Name);
    textv = (TextView) getView().findViewById(R.id.textView);

    text.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

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

        }

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

}

但是它不起作用,我在TextWatcher上得到了错误,错误:找不到符号类TextWatcher,任务执行失败':appcompileDebugJavaWithJavac‘。有人能帮帮我吗..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-07 20:18:20

在片段布局中假设R.id.p1NameR.id.textView

onActivityCreated(...)方法中的片段中,获取对编辑文本的引用,并在那里设置addTextChangedListener。

代码语言:javascript
复制
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

 text = (EditText) getView().findViewById(R.id.p1Name);
 textv = (TextView) getView().findViewById(R.id.textView);

text.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

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

    }

    @Override
    public void afterTextChanged(Editable s) {
        textv.setText(s);
    }
});
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41026472

复制
相关文章

相似问题

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