网格布局上的不同片段和不同项目使用recyclerview

问题描述 投票:0回答:1

你好我在片段视图中有一个问题,每个片段都有相同的RecyclerView图片,即使形状已经改变,每个片段中的不同结果保持不变,如下所示:Screenshots

因此图像仍然与导入片段相同,并且交易无法删除,但如果给出像图片3这样的背景,它可能会丢失但不能使用,只能使用前一个图像就像堆叠一样。

这是我的主要活动,使一切都错了:

我的名字是c ty。 XML

public class MainActivity extends AppCompatActivity {
    private DrawerLayout drawer;
    private List<Tas> lstTas;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lstTas = new ArrayList<>();
        lstTas.add(new Tas("Tas Serbaguna Sedang", "Kategori : Tas Lokal", "Deskripsi Tas : Tas serbaguna yang bisa menyimpan berbagai alat make up maupun perlengkapan lainnya", "Rp 70.000", R.drawable.greybag));
        lstTas.add(new Tas("Tas Serbaguna Mini", "Kategori : Tas Lokal", "Deskripsi Tas : Tas serbaguna yang bisa menyimpan berbagai alat make up maupun perlengkapan lainnya dengan ukuran mini", "Rp 50.000", R.drawable.bagmini));
        lstTas.add(new Tas("Tas Serbaguna Besar", "Kategori : Tas Lokal", "Deskripsi Tas : Tas serbaguna yang bisa menyimpan berbagai alat make up maupun perlengkapan lainnya dengan ukuran besar", "Rp 150.000", R.drawable.bagblack));
        lstTas.add(new Tas("Pouch Wanita Sedang", "Kategori : Pouch", "Deskripsi Tas : Dompet Pouch Trendy yang muat banyak barang dan trendy di bawa kemana saja", "Rp 20.000", R.drawable.pouch));
        lstTas.add(new Tas("Tas Pink Mini", "Kategori : Tas Import", "Deskripsi Tas : Tas Import mini bag yang bisa menyimpan peralatan mandi ataupun kebutuhan sehari - hari wanita", "Rp.120.000", R.drawable.pinkmini));
        lstTas.add(new Tas("Tote Bag Campus", "Kategori : Tas Import", "Deskripsi Tas : Tote Bag cocok untuk kalian yang masih kuliah untuk menyimpan perlengkapan kuliah", "Rp.90.000", R.drawable.totebag));
        lstTas.add(new Tas("Fold Tote Bag", "Kategori : Tas Import", "Deskripsi Tas : Tote Bag lipat yang bisa di lipat cocok untuk para remaja yang suka simple membawa barang saat berpergian", "Rp.100.000", R.drawable.totebagorange));

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        drawer = findViewById(R.id.drawer_layout);

        NavigationView navigationView = findViewById(R.id.nav_view);

        Intent intent = getIntent();
        TextView name = navigationView.getHeaderView(0).findViewById(R.id.nama);
        TextView email = navigationView.getHeaderView(0).findViewById(R.id.mail);
        String extraName = intent.getStringExtra("name");
        String extraEmail = intent.getStringExtra("email");
        name.setText(extraName);
        email.setText(extraEmail);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this,drawer,toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();

        if (savedInstanceState == null) {
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new BerandaFragment()).commit();
            navigationView.setCheckedItem(R.id.nav_beranda);
        }

        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.nav_beranda:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new BerandaFragment()).commit();
                        break;
                    case R.id.nav_taslokal:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new TasLokalFragment()).commit();
                        break;
                    case R.id.nav_tasimport:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new TasImportFragment()).commit();
                        break;
                    case R.id.nav_status:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new StatusFragment()).commit();
                        break;
                    case R.id.nav_belanja:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new KeranjangFragment()).commit();
                        break;
                    case R.id.nav_komplain:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new KomplainFragment()).commit();
                        break;
                    case R.id.nav_refund:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new RefundFragment()).commit();
                        break;
                    case R.id.nav_pengaturan:
                        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new PengaturanFragment()).commit();
                        break;
                }
                drawer.closeDrawer(GravityCompat.START);
                return true;
            }
        });


        RecyclerView mrv = findViewById(R.id.recyclerviewtas);
        RecyclerViewAdapter mAdapter=new RecyclerViewAdapter(this, lstTas);
        mrv.setLayoutManager(new GridLayoutManager(this, 2));
        mrv.setAdapter(mAdapter);
        mrv.setHasFixedSize(true);
    }

    @Override
    public void onBackPressed() {
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }
}

adapter.Java

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
    private Context mContext;
    private List<Tas> mData;

    public RecyclerViewAdapter(Context mContext, List<Tas> mData) {
        this.mContext = mContext;
        this.mData = mData;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View v = inflater.inflate(R.layout.cardview_tas, parent, false);
        MyViewHolder vh = new MyViewHolder(v);
        return vh;
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, final int position) {
        holder.tv_title.setText(mData.get(position).getTitle());
        holder.tas_thumbnail.setImageResource(mData.get(position).getImg());
        holder.card.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(mContext, TasActivity.class);
                intent.putExtra("Title", mData.get(position).getTitle());
                intent.putExtra("Category", mData.get(position).getCategory());
                intent.putExtra("Description", mData.get(position).getDescription());
                intent.putExtra("Harga", mData.get(position).getHarga());
                intent.putExtra("Img", mData.get(position).getImg());
                mContext.startActivity(intent);
            }
        });
    }

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

    public static class MyViewHolder extends RecyclerView.ViewHolder {
        TextView tv_title;
        ImageView tas_thumbnail;
        CardView card;
        public MyViewHolder(View itemView) {
            super(itemView);
            tv_title = itemView.findViewById(R.id.texttas);
            tas_thumbnail = itemView.findViewById(R.id.imagetas);
            card = itemView.findViewById(R.id.cardviewid);
        }
    }
}

我的问题是我仍然使用此代码或我更改了适配器或其他代码以使其变得简单?因为我在堆栈溢出时从另一个页面混合了代码,它不会发生。

android recycler-adapter
1个回答
0
投票

我只是改变了列表,并为它做了一个不同的适配器,但在导入片段和第一张图片我只是使用相同的列表,但不同的列表集合,如此

lstTas = new ArrayList<>();
    lstTas.add(new Tas("Tas Serbaguna Sedang", "Kategori : Tas Lokal", "Deskripsi Tas : Tas serbaguna yang bisa menyimpan berbagai alat make up maupun perlengkapan lainnya", "Rp 70.000", R.drawable.greybag));
    lstTas.add(new Tas("Pouch Wanita Sedang", "Kategori : Pouch", "Deskripsi Tas : Dompet Pouch Trendy yang muat banyak barang dan trendy di bawa kemana saja", "Rp 20.000", R.drawable.pouch));
    lstTas.add(new Tas("Tas Pink Mini", "Kategori : Tas Import", "Deskripsi Tas : Tas Import mini bag yang bisa menyimpan peralatan mandi ataupun kebutuhan sehari - hari wanita", "Rp.120.000", R.drawable.pinkmini));
    lstTas.add(new Tas("Tote Bag Campus", "Kategori : Tas Import", "Deskripsi Tas : Tote Bag cocok untuk kalian yang masih kuliah untuk menyimpan perlengkapan kuliah", "Rp.90.000", R.drawable.totebag));
    lstTas.add(new Tas("Fold Tote Bag", "Kategori : Tas Import", "Deskripsi Tas : Tote Bag lipat yang bisa di lipat cocok untuk para remaja yang suka simple membawa barang saat berpergian", "Rp.100.000", R.drawable.totebagorange));

只是在每个页面的数组列表上的不同集合

© www.soinside.com 2019 - 2024. All rights reserved.