У меня есть MainActivity
(распространяется Activity
) и a FooFragment
(распространяется Fragment
).null ссылка на getArguments
активность использует newFooInstance
метод для создания экземпляра FooFragment
и установить некоторые аргументы ему:
public static FooFragment newInstance(String label) {
FooFragment fooFragment = new FooFragment();
Bundle args = new Bundle();
args.putString("fooLabel", label);
fooFragment.setArguments(args);
return fooFragment;
}
Теперь внутри FooFragment
s onCreate
и onCreateView
я:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fooLabel = getArguments().getString("fooLabel"); // null error
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.fragment_balanse_period, container, false
);
TextView fooView = (TextView) rootView.findViewById(R.id.fooLabel);
fooView.setText(fooLabel);
return rootView;
}
И он производит:
Попытка ссылаться на virt ual метод
java.lang.String android.os.Bundle.getString(java.lang.String, java.lang.String)
по ссылке на нулевой объект *
Любая идея, что я делаю неправильно?
EDIT:
Определение основной деятельности, как:
public class MainActivity extends AppCompatActivity {
Тогда инстанцирован fooFragment
как:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragments = new ArrayList<>();
fragments.add(newInstance("bar"));
// Instantiate a ViewPager and PagerAdapter
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new FooPagerAdapter(getSupportFragmentManager(), fragments);
показать, как вы используете 'метод newInstance'. Я думаю, что вы создаете его, не используя этот метод. –
@ h3d0, во-первых, если вы хотите использовать Fragment внутри действия, вам необходимо расширить FragmentActivity else AppCompatActivity. – TejaDroid
Добавлена дополнительная информация в соответствии с комментариями. – Oleg