ViewPager(3ページあり)を使ってアプリケーションを作成していますが、今はSQLデータベースにアクセスする最初のページを作成し、 ListView(この機能は最初のページだけで、他のページはまだ実装されていない他の機能を持っています)が、私の問題はデータが間違ったページ(Second Page)に印刷されることです。私はgetCurrentItem()
という方法を使って私がどのページにいるかを知っています。次のような方法onCreateView
内のコードは次のとおりです。 getCurrentItemは現在のアイテムをAndroidで返していません
View rootView = inflater.inflate(R.layout.fragment_prioridad_alta, container, false);
List<String> array = new ArrayList<>();
ViewPager pg = (ViewPager) container;
int current = pg.getCurrentItem();
if (current == 0) {
// Database access, I'm using a Cursor for the DB and adding
// the data to an arrayList to print it using the ArrayAdapter,
// I don´t know if this is the most properly way of doing it
// but currently my main purpose is making this works
}
ArrayAdapter adapt = new ArrayAdapter(getActivity(), R.layout.fragment_prioridad_alta, R.id.textTarea, array);
ListView lv = (ListView) rootView.findViewById(R.id.listView);
lv.setAdapter(adapt);
return rootView;
ちょうど明確にするために、私はその後、データが最初のページに印刷された(ちょうど1回目)されたアプリケーションを初めて実行するとき、Iページの変更は2ページ目にのみ印刷され、最初のページには印刷されません。
次に、私はのonCreateメソッドで実装されているページのchangeListenerですのコードを追加します。
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_prioridad_alta);
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Prioridad Alta");
setSupportActionBar(toolbar);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener(){
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch(position){
// Camnbia la pagina de prioridad
case 0: toolbar.setTitle("Prioridad Alta"); break;
case 1: toolbar.setTitle("Prioridad Media"); break;
case 2: toolbar.setTitle("Prioridad Baja"); break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
これはPagerAdapterのコードです:
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.newInstance(position + 1);
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Prioridad Alta";
case 1:
return "Prioridad Media";
case 2:
return "Prioridad Baja";
}
return null;
}
}
時に断片化する送信位置を使用するには、タイトルが正しくsetedのですか?スクロールするときは? –
はい、タイトルは完璧に動作します –
ポケットベル用アダプターをポストすることができます –