ViewPager
2つが設定されているを使用するアクティビティで問題が発生していFragments
ます。私のプロジェクトには、1つのアクティビティRegisterActivity.javaと2つのフラグメント(FirstFragment.javaとSecondFragment.java)があります。アクティビティが作成されると、2つのフラグメントがロードされます。
public class RegisterActivity extends FragmentActivity {
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
EditText firstName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
firstName = (EditText) findViewById(R.id.edit_text_register_first_name);
firstName.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) { }
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// Do something...
}
});
}
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
FirstFragment firstFragment = new FirstFragment();
return firstFragment;
case 1:
SecondFragment secondFragment = new SecondFragment();
return secondFragment;
}
return null;
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
...
}
}
}
次のコードはFirstFragment.javaにあります。
public class FirstFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View firstInterface = inflater.inflate(R.layout.fragment_first, container, false);
return firstInterface;
}
}
およびSecondFragment.java:
public class SecondFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View secondInterface = inflater.inflate(R.layout.fragment_second, container, false);
return secondInterface;
}
}
必要に応じて、すべての輸入品などが揃っていることを保証します。アプリケーションを実行すると、が宣言されNullPointerException
ている41行目に表示されます。addTextChangedListener
私が行ったことから、エラーが発生する理由についての私の推測は、がedit_dext_register_first_name
で使用されているレイアウトの一部ではないためですsetContentView(R.layout.activity_register);
。フラグメントの1つのレイアウトの一部であるという事実にもかかわらず、アプリはどこを探すべきかわからないEditText
ため、NullPointerException
。私は間違っているかもしれません。
この問題を解決する方法を見つけるのに苦労しているので、アドバイスをいただければ幸いです。
ありがとう!