Я Следующие два фрагмента, содержащего TextView и кнопки:Android NullPointerException: Попытка вызвать виртуальный метод
public class MyFragmentText extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public static final MyFragmentText newInstance(String message)
{
MyFragmentText f = new MyFragmentText();
Bundle bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
View v = inflater.inflate(R.layout.layout_text, container, false);
TextView messageTextView = (TextView)v.findViewById(R.id.textView);
messageTextView.setText(message);
return v;
}
}
и
public class MyFragmentButton extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public static final MyFragmentButton newInstance(String message)
{
MyFragmentButton f = new MyFragmentButton();
Bundle bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
View v = inflater.inflate(R.layout.layout_button, container, false);
TextView messageTextView = (TextView)v.findViewById(R.id.textView);
messageTextView.setText(message);
return v;
}
}
и у меня есть три XML-файлы, которые являются:
Основная планировка:
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
Кнопка раскладка
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/button"
android:width="100dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click here"/>
</RelativeLayout>
TextView раскладка
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
Теперь, когда я зову их от главной программы, чтобы показать раздвижные окна со следующим кодом, он работает хорошо.
общественного класса PageViewActivity расширяет FragmentActivity {
MyPageAdapter pageAdapter;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page_view);
List<Fragment> fragments = getFragments();
pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
pager.setAdapter(pageAdapter);
//btn = (Button) findViewById(R.id.button);
//btn.setText("Hello World!!!");
}
private List<Fragment> getFragments(){
List<Fragment> fList = new ArrayList<Fragment>();
fList.add(MyFragmentButton.newInstance("Fragment 1"));
fList.add(MyFragmentText.newInstance("Fragment 2"));
return fList;
}
private class MyPageAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
}
но если я применяю
btn = (Button) findViewById(R.id.button);
btn.setText("Hello World!!!");
это дает мне исключения нулевого указателя. Я предполагаю, что это связано с тем, что thet lauyout не раздувается, когда я звоню в btn. Я был бы признателен, если бы кто-нибудь мог предложить какое-либо решение.
Можете ли вы показать точно activity_page_view расположение XML, пожалуйста? – MightySeal
Mightyseal, я только что обновил сообщение, чтобы показать три файла макета – MKS