簡體   English   中英

我不知道如何完成此代碼以顯示收藏夾列表

[英]i don't know how to complete this code to show the favorites list

早上好

我想將收藏夾列表添加到我的應用中,任何人都可以幫助我完成此代碼!

我沒有收到任何錯誤,但頁面為空。

任何幫助都很棒。

提前致謝!

收藏夾活動.java(此處的代碼我不知道如何完成)

public class FavoritesActivity extends AppCompatActivity {

    RecyclerView recyclerView;
    RecyclerView.LayoutManager layoutManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_favorites);

        recyclerView = findViewById(R.id.recycler_favorites);
        recyclerView.setHasFixedSize(true);

        LinearLayoutManager myLayoutManager = new LinearLayoutManager(this);
        myLayoutManager.setReverseLayout(true);
        myLayoutManager.setStackFromEnd(true);
        recyclerView.setLayoutManager(myLayoutManager);

        loadFavorites();
    }

    private void loadFavorites() {

        FavoritesAdapter adapter = new FavoritesAdapter
                (this, new Database(this).getAllFavorites("foodId"));

        recyclerView.setAdapter(adapter);

    }

}

這是收藏夾適配器.java

public class FavoritesAdapter extends RecyclerView.Adapter<FavoritesViewHolder> {

    private Context context;
    private List<Favorites> favoritesList;

    public FavoritesAdapter(Context context, List<Favorites> favoritesList) {
        this.context = context;
        this.favoritesList = favoritesList;
    }

    @NonNull
    @Override
    public FavoritesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(context).inflate(R.layout.favorites_item,parent,false);
        return new FavoritesViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(@NonNull FavoritesViewHolder viewHolder, final int position) {

        viewHolder.food_name.setText(favoritesList.get(position).getName());
        viewHolder.food_presenter.setText(String.format("%S", favoritesList.get(position).getName()));
        Picasso.with(context).load(favoritesList.get(position).getImage())
                .into(viewHolder.food_image);

        final Favorites local = favoritesList.get(position);
        viewHolder.setItemClickListener(new ItemClickListener() {
            @Override
            public void onClick(View view, int position, boolean isLongClick) {

                //Start New Activity (Description Activity)
                Intent foodDetails = new Intent(context, FavoritesActivity.class);
                foodDetails.putExtra("FoodId",favoritesList.get(position).getFoodId()); //Send food ID to new activity
                context.startActivity(foodDetails);
            }
        });

    }

    @Override
    public int getItemCount() {
        return favoritesList.size();
    }

    public void removeItem(int position){
        favoritesList.remove(position);
        notifyItemRemoved(position);
    }

    public void restoreItem(Favorites item, int position){
        favoritesList.add(position,item);
        notifyItemInserted(position);
    }

    public Favorites getItem(int position){
        return favoritesList.get(position);
    }

}

這是Database.java

 public List<Favorites> getAllFavorites (String foodId)
    {
        SQLiteDatabase db = getReadableDatabase();
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

        String[] sqlSelect={"FoodId", "FoodName", "FoodImage", "FoodDescription", "FoodComponents",
            "FoodMenuId", "FoodUserName"};
        String sqlTable = "Favorites";

        qb.setTables(sqlTable);
        Cursor cursor = qb.query(db,sqlSelect,"FoodId=?", new String[]{foodId}, null,null,null);

        final List<Favorites> result = new ArrayList<>();
        if (cursor.moveToFirst())
        {
            do {
                result.add(new Favorites(
                        cursor.getString(cursor.getColumnIndex("FoodId")),
                        cursor.getString(cursor.getColumnIndex("FoodName")),
                        cursor.getString(cursor.getColumnIndex("FoodImage")),
                        cursor.getString(cursor.getColumnIndex("FoodDescription")),
                        cursor.getString(cursor.getColumnIndex("FoodComponents")),
                        cursor.getString(cursor.getColumnIndex("FoodMenuId")),
                        cursor.getString(cursor.getColumnIndex("FoodUserName"))
                        ));
            }while (cursor.moveToNext());
        }
        return result;
    }

在loadFavorites()方法上調用adapter.notifyDataSetChanged()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM