如何为动态大小的 CardViews 显示数字(从 1 到 n)?

How to display numbers (starting from 1 to n) for CardViews of dynamic size?

我有一个主 class,其中有一个 CardView 和一个添加按钮。单击添加 Button,我们可以在下面添加一个卡片视图。它的工作原理基本上是我将 card.xml 布局合并到我的主 class 中作为添加的容器布局。

现在我想为每张卡片分配一个数字(集合),基本上显示 1、2、3 等,随着每个添加的卡片视图在顶部的主视图下方增加。

但是,当我在 addcard 方法中增加数字时,应用程序崩溃了。

主要class:

    int set = 1;

onCreate方法中:

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


    add = findViewById(R.id.addperff);
    layout = findViewById(R.id.container);


    textView2 = findViewById(R.id.textViewSets);
    textView2.setText(""+set);


    add.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
      
            addCard();


        }
    });
    Intent secondIntent = getIntent();    //getting the title from other class
    String message = secondIntent.getStringExtra("One");


    TextView textView = (TextView) findViewById(R.id.type);

    textView.setText(message);
}



    private void addCard() {
        final View view = getLayoutInflater().inflate(R.layout.card, null);
        ++set;
        TextView textView3 = findViewById(R.id.textViewSets2);
        textView3.setText(""+set);
        layout.addView(view);
    }
}

基本上我有一个水平布局,文本(视图)在顶部,用户编辑文本输入一个数字。基本上是3个cardviews的水平布局。

你为什么不试试这个?:

private void addCard() {
        final View view = getLayoutInflater().inflate(R.layout.card, null);
        ++set;
        TextView textView = new TextView(this);
        textView.setText(""+set);
        layout.addView(view);
    }

尝试改变

    TextView textView3 = findViewById(R.id.textViewSets2);

    TextView textView3 = view.findViewById(R.id.textViewSets2);

我假设这个 R.id.textViewSets2 在刚刚膨胀的视图中,而不是在你的 activity 中