当前位置: 首页 > 知识库问答 >
问题:

将包值显示到回收器视图

谢阳成
2023-03-14
public class AmountCartModel {

    private String testName;
    private String testPrice;

    public AmountCartModel() {
        this.testName = testName;
        this.testPrice = testPrice;
    }

    public String getTestName() {
        return testName;
    }

    public void setTestName(String testName) {
        this.testName = testName;
    }

    public String getTestPrice() {
        return testPrice;
    }

    public void setTestPrice(String testPrice) {
        this.testPrice = testPrice;
    }
}

这是我的活动

public class AmountCartActivity extends AppCompatActivity

    private RecyclerView recyclerView;
    List<AmountCartModel> mydataList ;
    private MyAdapter madapter;

    Bundle extras ;
    String testName="";
    String testPrice="";

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

        mydataList = new ArrayList<>();
        /*
        * Getting Values From BUNDLE
        * */
        extras = getIntent().getExtras();

        if (extras != null) {
            testName = extras.getString("test_name");
            testPrice = extras.getString("test_price");

            //Just add your data in list
            AmountCartModel mydata = new AmountCartModel();  // object of Model Class
            mydata.setTestName(testName );
            mydata.setTestPrice(testPrice);
            mydataList.add(mydata);
        }

       madapter=new MyAdapter(mydataList);
    madapter.setMyDataList(mydataList);
    recyclerView = (RecyclerView)findViewById(R.id.recyler_amount_cart);
    recyclerView.setHasFixedSize(true);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(madapter);

    }

这是我的回收器适配器

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

    private Context context;
    private List<AmountCartModel> myDataList;

    public MyAdapter(Context context) {
        this.context = context;
        myDataList = new ArrayList<>();
    }


    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        // Replace with your layout
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.amount_cart_row, parent, false);
        return new ViewHolder(view);
    }


    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        // Set Your Data here to yout Layout Components..

        // to get Amount
        holder.testName.setText(myDataList.get(position).getTestName());
        holder.testPrice.setText(myDataList.get(position).getTestPrice());
    }

    @Override
    public int getItemCount() {

            return myDataList.size();

    }

    public void setMyDataList(List<AmountCartModel> myDataList) {
        // getting list from Fragment.
        this.myDataList = myDataList;
        notifyDataSetChanged();
    }


    public class ViewHolder extends RecyclerView.ViewHolder {

        TextView testName,testPrice;

        public ViewHolder(View itemView) {
            super(itemView);
            // itemView.findViewById

            testName=itemView.findViewById(R.id.test_name_one);
            testPrice=itemView.findViewById(R.id.price_name);

        }
    }
  }
}

logcat

这里,我从以前的活动回收器视图中获取值,并且我试图在此活动中通过Bundle显示它。
问题是,当我用这种方法执行操作时,活动没有显示任何东西,而我在我的Bundle中获取值,我没有获取它是什么问题。如有任何帮助,将不胜感激。谢谢你

共有1个答案

魏兴邦
2023-03-14

显然你忘了设置适配器。更改代码

madapter=new MyAdapter(mydataList);
madapter.setMyDataList(mydataList);
recyclerView = (RecyclerView)findViewById(R.id.recyler_amount_cart);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);

madapter=new MyAdapter(mydataList);
madapter.setMyDataList(mydataList);
recyclerView = (RecyclerView)findViewById(R.id.recyler_amount_cart);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(madapter);

编辑2:将OnBindViewWholder更改为:

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    holder.testName.setText(myDataList.get(position).getTestName());
    holder.testPrice.setText(myDataList.get(position).getTestPrice());
}
@Override
public int getItemCount() {
    return myDataList.size();
}
 类似资料:
  • 当我尝试将Image URL解析到ImageView中时,回收器视图不显示,活动为空。我正在使用Picasso将图像加载到适配器类中的onBinfViewHolder方法中。这是相关代码 代表: } RepRvAdapter: } 解析JSON数据的方法: 现在,我有一行解析图像URL的代码被注释掉了。行取消注释后,活动将不再显示。如何获取要在ImageView中解析和显示的图像url?我认为这可

  • 我刚开始在firebase工作。我设法上传了文本和图像,但是,我无法检索要显示在回收器视图中的图像,只能检索文本。我用的是毕加索依赖。我已经包括了我的主要活动。java类,该类负责显示从问题“我的适配器”中的firebase检索的回收器视图项。java类和模型类。我相信,在我将图像URI上载到firebase存储时,我可能犯了没有存储图像URI的错误,因此适配器无法检索图像位置。我想这可能是因为我

  • 我正在制作一个应用程序,其中有回收器视图。但我无法在我的应用程序中看到回收器视图。当我检查Logcat时,它显示'e/recyclerview:No adapter attached;正在跳过布局‘。为什么会发生这种情况,我该如何修复? 我的主要活动代码: 我的适配器(PostAdapter.java)类代码:

  • 我正面临一个奇怪的错误,其中recyclerview只显示了一个项目。下面是我的recyclerview适配器的代码: 我已经在其他应用程序中使用了这段代码,它的工作非常完美。我已经检查了聊天数据,这也是完美的。 这里是指向git repo布局文件的链接:布局文件

  • 这是我的活动: 卡片xml 活动xml 这是我的自定义适配器 我已经看了很多关于如何让它工作的指南,但它仍然不起作用。有人知道发生了什么事吗?我的版本是25.0。1,并导入所有模块。但它并没有在布局中添加一张卡片。

  • 我正试图添加数据在我的回收视图从火炉。我有带名字的文件(级别级别编号)但没有显示我的活动这是代码: 主要活动水平: 公共类级别活动扩展AppCompat活动{ } 水平调整器 公共类级别适配器扩展了RecyclerView。适配器 }