我正在尝试将我的 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,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,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;
}
}