初めて実装しようとしていますがViewPager
、動作させることができましたが、個々のフラグメント内の要素を時々更新する必要があるため、フラグメント内にメソッドを作成しようとしましたこれを行うクラスですが、現時点ではnullポインターを返していますが、以前にこれを行ったことがある人は、これを機能させる方法についていくつかのヒントを教えてもらえますか? どんな助けも大いに役立ちます ありがとう!
これが私のフラグメントアクティビティとアダプターです:
public class PageViewActivity extends FragmentActivity {
MyPageAdapter pageAdapter;
@Override
public 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);
MyFragment theFragment = (MyFragment) fragments.get(0);
theFragment.receiveUpdate();
}
private List<Fragment> getFragments() {
List<Fragment> fList = new ArrayList<Fragment>();
fList.add(MyFragment.newInstance("Fragment 1"));
fList.add(MyFragment.newInstance("Fragment 2"));
fList.add(MyFragment.newInstance("Fragment 3"));
return fList;
}
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();
}
}
}
ここに私の実際のフラグメントクラスがあります:
public class MyFragment extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
TextView messageTextView;
public static final MyFragment newInstance(String message) {
MyFragment f = new MyFragment();
Bundle bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
return f;
}
public void receiveUpdate() {
// Do something
messageTextView.setText("changed");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
View v = inflater.inflate(R.layout.myfragment_layout, container, false);
messageTextView = (TextView) v.findViewById(R.id.textView);
messageTextView.setText(message);
ListView fragList = (ListView) v.findViewById(R.id.list);
String[] from = new String[] { "str", "str", "str", "str", "str",
"str", "str", "str", "str" };
ArrayAdapter adapter = new ArrayAdapter(v.getContext(),
android.R.layout.simple_list_item_1, from);
fragList.setAdapter(adapter);
return v;
}
}