我想在MainActivity中去监听另一个layout中的edittext 在MainActivity中有用到ViewPage 但是在oncreate中初始化 然后去监听 会出空指针的错
但是如果在edittext所在的layout中加一个button 然后给 一个android:onClick="onclick"
然后在MainActivity中去实现这个点击事件 在这个事件下去初始化edittext实现监听就不会出错 但是这样会导致edittext.addTextChangedListener 多次的使用 如果edittext很多的话会导致程序崩溃
有什么办法能在点击事件外去监听这些edittext 不出NullpointerException的错误啊
あなたの質問は非常に混乱しています。ポップアップするダイアログボックスであっても、フラグメント内の何かであっても、監視できるのはアクティビティに基づいている必要があるため、別のレイアウトに接続する必要があります。それは問題ではありません。
アクティビティ内のコンポーネントはすべて、初期化に findViewById() に依存します。他のレイアウトにある場合、レイアウト ファイルは View に変換され、findViewById によって初期化されます。これは、editText がどの View であるかを知る必要があることを意味します。どのアクティビティの下で。
ところで、前の質問には答えましたか - -
オブジェクトに対する操作を行う前に、オブジェクトが存在する必要があります。 editText はビューページャー内にあるため、ビューページャーのアダプターで editText の監視を実装します。
まず、なぜ別のアクティビティで監視したいのですか? コンテンツを取得して変更したい場合は、ハンドラーまたはインテントを介して渡すことができます。
コールバックを自分で記述するか、eventbus を使用します。使用方法の詳細については、github を参照してください。