我正在尝试将我的 recyclerview SQLite 数据传递给片段
**// This is my sqlite helper class**
// This is my sqlite helper class
public class DataFavorite extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "FavoriteDB.db";
private static final int DATABASE_VERSION = 1;
public static final String LOGTAG ="FAVORITE";
SQLiteOpenHelper dbhandler;
SQLiteDatabase db;
public DataFavorite(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
final String SQL_CREATE_FAVORITE_TABLE;
SQL_CREATE_FAVORITE_TABLE = "CREATE TABLE " + FavoriteContract.FavoriteEnty.TABLE_NAME + " (" +
FavoriteContract.FavoriteEnty._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
FavoriteContract.FavoriteEnty.COLUMN_MOVIEID + " INTEGER, " +
FavoriteContract.FavoriteEnty.COLUMN_LIKE + " INTEGER, " +
FavoriteContract.FavoriteEnty.COLUMN_TITLE + " TEXT NOT NULL, " +
FavoriteContract.FavoriteEnty.COLUMN_BACKDROP_PATH + " TEXT NOT NULL, " +
FavoriteContract.FavoriteEnty.COLUMN_SUMMARY + " TEXT NOT NULL" +
"); ";
sqLiteDatabase.execSQL(SQL_CREATE_FAVORITE_TABLE);
}
public void open(){
Log.i(LOGTAG,"Database Opened");
db=dbhandler.getWritableDatabase();
}
public void close(){
Log.i(LOGTAG,"Database Closed");
dbhandler.close();
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + FavoriteContract.FavoriteEnty.TABLE_NAME);
onCreate(sqLiteDatabase);
}
public void addFavorite(CategoryItem movie){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(FavoriteContract.FavoriteEnty.COLUMN_MOVIEID, movie.getId());
values.put(FavoriteContract.FavoriteEnty.COLUMN_LIKE, movie.getLike());
values.put(FavoriteContract.FavoriteEnty.COLUMN_TITLE, movie.getTitle());
values.put(FavoriteContract.FavoriteEnty.COLUMN_BACKDROP_PATH, movie.getBackdrop());
values.put(FavoriteContract.FavoriteEnty.COLUMN_SUMMARY, movie.getSummary());
db.insert(FavoriteContract.FavoriteEnty.TABLE_NAME, null, values);
db.close();
}
public void deleteFavorite(int id){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(FavoriteContract.FavoriteEnty.TABLE_NAME, FavoriteContract.FavoriteEnty.COLUMN_MOVIEID+ "=" + id, null);
}
public boolean getById(int id) {
String sql = "select * from orders where id = ?";
String[] args = { String.valueOf(id) };
return true;
}
public List<CategoryItem> getAllFavorite(){
String[] columns = {
FavoriteContract.FavoriteEnty._ID,
FavoriteContract.FavoriteEnty.COLUMN_MOVIEID,
FavoriteContract.FavoriteEnty.COLUMN_LIKE,
FavoriteContract.FavoriteEnty.COLUMN_TITLE,
FavoriteContract.FavoriteEnty.COLUMN_BACKDROP_PATH,
FavoriteContract.FavoriteEnty.COLUMN_SUMMARY
};
String sortOrder = FavoriteContract.FavoriteEnty._ID + " ASC";
List<CategoryItem> favoriteList = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(
FavoriteContract.FavoriteEnty.TABLE_NAME,
columns,
null,
null,
null,
null,
null,
sortOrder);
while(cursor.moveToNext())
{
CategoryItem movie = new CategoryItem();
movie.setId(Integer.parseInt(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEnty.COLUMN_MOVIEID))));
movie.setTitle(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEnty.COLUMN_LIKE)));
movie.setTitle(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEnty.COLUMN_TITLE)));
movie.setBackdrop(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEnty.COLUMN_BACKDROP_PATH)));
movie.setSummary(cursor.getString(cursor.getColumnIndex(FavoriteContract.FavoriteEnty.COLUMN_SUMMARY)));
favoriteList.add(movie);
}
// cursor.close();
// db.close();
return favoriteList;
}
// This is my recyclerview adapter class
// This is my recyclerview adapter class
public class FavoriteMovieAdapter extends RecyclerView.Adapter<FavoriteMovieAdapter.ViewHolder>{
Context context;
List<CategoryItem> favoriteMovieList;
// DataFavorite dataFavoriteList;
public FavoriteMovieAdapter(Context context, List<CategoryItem> favoriteMovieList) {
this.context = context;
this.favoriteMovieList = favoriteMovieList;
}
public FavoriteMovieAdapter(Context context){
this.context = context;
favoriteMovieList=new ArrayList<>();
}
public void setMovies(List<CategoryItem> favoriteMovieList){
this.favoriteMovieList=favoriteMovieList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_favorite,parent,false));
}
@Override
public void onBindViewHolder(@NonNull FavoriteMovieAdapter.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
holder.name.setText(favoriteMovieList.get(position).getMovieName());
holder.summary.setText(favoriteMovieList.get(position).getSummary());
Glide.with(context).load(favoriteMovieList.get(position).getBackdrop()).into(holder.poster);
holder.poster.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, MovieDetail.class);
intent.putExtra("movieid", favoriteMovieList.get(position).getId());
// intent.putExtra("like",favoriteMovieList.get(position).getLike());
intent.putExtra("title", favoriteMovieList.get(position).getMovieName());
intent.putExtra("backdrop", favoriteMovieList.get(position).getBackdrop());
intent.putExtra("summary", favoriteMovieList.get(position).getSummary());
context.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
if(favoriteMovieList!=null)
return favoriteMovieList.size();
else
return 0;
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView poster;
Integer like;
TextView name, summary;
public ViewHolder(@NonNull View view) {
super(view);
poster= view.findViewById(R.id.posterFavorite);
name= view.findViewById(R.id.nameFavorite);
summary= view.findViewById(R.id.summaryFavorite);
}
}
// this is FavoriteFragment.java
// this is FavoriteFragment.java
public class FavoriteFragment extends Fragment {
private RecyclerView recFavorite;
List<CategoryItem> favoriteMovieList;
View view;
JsonVNPT jsonVNPT = new JsonVNPT();
FavoriteMovieAdapter favoriteMovieAdapter;
DataFavorite dbFavorite;
public FavoriteFragment() {
// Required empty public constructor
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_favorite, container, false);
// new
dbFavorite = new DataFavorite(view.getContext());
// Intent intent= Intent.getIntent();
//new
recFavorite = view.findViewById(R.id.recFavorite);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(view.getContext(), RecyclerView.VERTICAL, false);
recFavorite.setLayoutManager(layoutManager);
favoriteMovieAdapter = new FavoriteMovieAdapter(view.getContext());
favoriteMovieList=dbFavorite.getAllFavorite();
favoriteMovieAdapter.setMovies(favoriteMovieList);
recFavorite.setAdapter(favoriteMovieAdapter);
return view;
}
}