Android Studio - EditText.addTextChangedListener 不工作

Android Studio - EditText.addTextChangedListener not working

我有一个应用程序,我已经实现了 Fragment Pager Adapter 以使用 fragment 滑动页面。然后,在片段上,它有一个 EditText 和一个 TextView。我想在片段中实现 EditText.addTextChangedListener,所以在 MainActivity.java

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

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 上遇到错误,错误:找不到符号 class TextWatcher,任务“:appcompileDebugJavaWithJavac”执行失败。谁能帮帮我..

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

onActivityCreated(...) 方法中的片段中获取对 edittext 的引用并在那里设置 addTextChangedListener。

@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);
    }
});
}