Wenn ich versuche, diesen Code auszuführen, zeigt es mir eine Ausnahme und es ist "nullPointer Ausnahme". Ich kann den Fehler dieses Codes nicht finden, kann mir bitte jemand helfen, diesen Fehler zu beheben? Mein Code ist blasen bitte hilf mir, es zu beheben.Wie Zeichenfolge senden von Aktivität zu Fragment mit Bundle
hier ist mein MainActivity
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
EditText testInputTV;
Button send;
Bundle bundle;
String welcome ="Welcome";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testInputTV = (EditText) findViewById(R.id.testInput);
send= (Button) findViewById(R.id.send);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
public void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
bundle =new Bundle();
bundle.putString("welcome", welcome);
FragmentOne fragobj = new FragmentOne();
fragobj.setArguments(bundle);
adapter.addFragment(new FragmentOne(), "ONE");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(android.support.v4.app.FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
mein Fragment Klasse
public class FragmentOne extends Fragment {
String storeText;
private Bundle bundle;
public FragmentOne() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_fragment_one, container, false);
bundle = this.getArguments();
storeText = bundle.getString("welcome");
Toast.makeText(getContext().getApplicationContext(),storeText,Toast.LENGTH_SHORT).show();
return view;
}
}
Fehlertext in Logcat
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
Welche Zeile wirft diese Ausnahme? – Acapulco
Ändern Sie 'adapter.addFragment (new FragmentOne()," ONE ");' to 'adapter.addFragment (fragobj," ONE ");'. –
storeText = bundle.getString ("Willkommen"); Diese Zeile macht die Ausnahme –