Я создаю приложение списка, которое отображает все списки, созданные в главном фрагменте. Теперь, когда я выбираю любой из списка, новый фрагмент, содержащий элементы этого списка, должен открываться с помощью окна просмотра для прокрутки между списками. Теперь я не могу передать информацию об имени списка для отображения моему адаптеру ViewPager. Я
Я пытался установить теги на ViewPager, но я все еще не могу заставить его работать.
Код для моего DBAdapter
public class DBAdapter {
public static final String KEY_ROWID = "_id";
public static final String KEY_ISDONE = "isdone";
public static final String KEY_TITLE = "title";
public static final String KEY_LIST_ID="list_id";
public static final String KEY_LISTID = "_id";
public static final String KEY_LISTNAME="listName";
private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "shopping_lists";
private static final String ITEMS_TABLE_NAME = "list_items";
private static final String LISTS_TABLE_NAME = "lists";
private static final int DATABASE_VERSION = 13;
//create lists table
private static final String LISTS_TABLE_CREATE =
"create table lists ("
+" _id integer primary key autoincrement, "
+" listName text not null,"
+" recentlyUsed boolean not null DEFAULT 0"
+" );";
//create items table
private static final String ITEMS_TABLE_CREATE =
"create table list_items ("
+"_id integer primary key autoincrement, "
+" isdone boolean not null DEFAULT 0,"
+" title text not null,"
+" list_id integer,"
+" quantity integer not null DEFAULT 1,"
+" FOREIGN KEY(list_id) REFERENCES lists(_id)"
+" );";
private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
public DBAdapter(Context ctx)
{
this.context = ctx;
DBHelper = new DatabaseHelper(context);
}
Код для моего фрагмента ViewPager
public class ListFragment extends Fragment {
int position;
long lid;
private ViewPager viewPager;
public ListFragment(int pos,long id) {
// Required empty public constructor
position=pos;
lid=id;
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_list, container, false);
viewPager = (ViewPager) view.findViewById(R.id.view_pager);
viewPager.setAdapter(new
FragmentAdapter(getChildFragmentManager()));
return view;
}
}
Код для FragmentAdapter
public class FragmentAdapter extends FragmentStatePagerAdapter {
public FragmentAdapter(FragmentManager fm) {
super(fm, FragmentStatePagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
}
@Override
public Fragment getItem(int position) {
Bundle bundle = new Bundle();
RestFragment rfrag=new RestFragment();
rfrag.setArguments(bundle);
return rfrag;
}
@Override
public int getCount() {
return 5;
}
}
Код для фрагмента, отображаемого в окне просмотра
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_rest, container, false);
Log.d("current p",id+"");
FloatingActionButton fab = view.findViewById(R.id.floatingActionButton1);
recyclerView = (RecyclerView) view.findViewById(R.id.item_recycler_view);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(layoutManager);
db=new DBAdapter(getActivity());
db.open();
mCursor=db.getAllItems(id);
mAdapter = new itemAdapter(mCursor, getActivity(), new itemAdapter.OnItemClicked2() {
@Override
public void onItemClick(View v, int position,long id) {
}
});
recyclerView.setAdapter(mAdapter);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("new ittem",id+"");
db.insertNewItem("itemx",id);
mAdapter.swapCursor(db.getAllItems(id));
}
});
new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0,ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
db.deleteItem((long) viewHolder.itemView.getTag());
}
}).attachToRecyclerView(recyclerView);
return view;
}