私はアプリを開発しており、sqliteデータベース、リストビューに表示するためのカスタムアダプター、データベースにデータを入力するための入力を取得するためのアクティビティ、およびリストビューをスワイプするためのviewpagerを使用したアクティビティを作成しました。私がやりたいことは、曜日ごとに 1 つずつ、合計 7 つのページを用意し、データベース全体を対応する日に広げて表示することです。データベースのフィールドは、レッスン、日、開始時刻、終了時刻、および場所です。現在、私が持っているのは、すべてのデータを 1 つのページに表示するアプリであり、「日」フィールドに基づいて複数のページ間でデータを表示する方法がわかりません。アドバイスやチュートリアルのリンクをいただければ幸いです。ありがとう。
ここにいくつかのコードがあります:
/*main class with viewpager there is an action bar with an action item to
the input activity */
import java.util.List;
import java.util.Vector;
import android.os.Bundle;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.ListView;
public class ScheduleActivity extends Activity {
private Context mContext;
DBSchedule db = new DBSchedule(this);
private ScheduleAdapter scheduleAdapter;
private static final int ENTER_DATA_REQUEST_CODE = 1;
Cursor c;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
setContentView(R.layout.activity_schedule);
ListView listview1 = new ListView(mContext);
ListView listview2 = new ListView(mContext);
ListView listview3 = new ListView(mContext);
Vector<View> pages = new Vector<View>();
pages.add(listview1);
pages.add(listview2);
pages.add(listview3);
ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
PageAdapter adapter = new PageAdapter(mContext,pages);
vp.setAdapter(adapter);
db.open();
scheduleAdapter = new ScheduleAdapter(ScheduleActivity.this, db.getAllEntries(),CursorAdapter.NO_SELECTION );
listview1.setAdapter(scheduleAdapter);
db.close();
listview2.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A2","B2","C2","D2"}));
listview3.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A3","B3","C3","D3"}));
}
カスタム ページ アダプター
import java.util.List;
import java.util.Vector;
import android.app.Fragment;
import android.content.Context;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
public class PageAdapter extends PagerAdapter {
private Context mContext;
private Vector<View> pages;
public PageAdapter(Context context, Vector<View> pages) {
this.mContext=context;
this.pages=pages;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View page = pages.get(position);
container.addView(page);
return page;
}
@Override
public int getCount() {
return pages.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}