需要有关文本视图、对话框、布尔语句和开关案例的帮助

Need help regarding textviews, dialogboxes, boolean statements, and switch cases

我想要的是让用户能够单击一个 TextView,然后弹出一个对话框,如果用户单击肯定按钮,则布尔值从 False 更改为 True。

用于使用应用内货币购买应用内商品。

示例:在TextView中,给出了项目名称,(Special Fruit),当点击TextView时弹出一个对话框,询问,你确定要购买这个项目吗? Yes/No。如果用户单击是并单击了 TExtView A,我希望布尔值 A 更改为 true,而默认值为 false。

这是目前为止的代码

public class ShopScreen extends AppCompatActivity {

private TextView TV1, TV2, TV3, TV4, TV5;
private boolean B1, B2, B3, B4, B5;

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

    B1 = false;
    B2 = false;
    B3 = false;
    B4 = false;
    B5 = false;

    TV1 = findViewById(R.id.TextOne);
    TV2 = findViewById(R.id.TextTwo);
    TV3 = findViewById(R.id.TextThree);
    TV4 = findViewById(R.id.TextFour);
    TV5 = findViewById(R.id.TextFive);

    TV1.setText("Special Fruit");
    TV1.setText("Apple Munch");
    TV1.setText("Watermelon Pop");
    TV1.setText("Passionfruit Blast");
    TV1.setText("Strawberry Explosion");

    TV1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            fruitPurchase();

        }
    });

    TV2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            fruitPurchase();

        }
    });

    TV3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            fruitPurchase();

        }
    });

    TV4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            fruitPurchase();

        }
    });

    TV5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            fruitPurchase();

        }
    });
}

public void fruitPurchase () {

    AlertDialog.Builder DBuild = new AlertDialog.Builder(ShopScreen.this);
    LayoutInflater DInflater = ShopScreen.this.getLayoutInflater();
    View DView = DInflater.inflate(R.layout.ao_dialog, null);
    DBuild.setView(DView)
            .setTitle("Confirm")
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            })
            .setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

               // Completely confused about what to do from here.

                    switch () {

                        case R.id.TV1;
                        
              // If TV1 was Selected, I want boolean B1 to change from false to true.
                            
                            B1 = true;
                            break;

                        case R.id.TV2;
                            B1 = true;
                            break;

                    }
                }
            });
    DBuild.show();
}

public void changeviews () {

    if (B1 = true) {
        TV1.setText("Sold Out");
        TV1.setClickable(false);
    }
}

如果您能提供任何帮助,我将不胜感激。

更改 fruitPurchase 使其接受 View:

public void fruitPurchase (View view) {
    //...
}

然后从点击侦听器内部传递视图:

  TV1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            fruitPurchase(v);

        }
    });

对所有 textview 点击侦听器执行上述操作。

然后按如下方式检查 switch case 中的视图 ID:

switch (view.getId()) {
    case R.id.TextOne;
        B1 = true;
        break;
    case R.id.TextTwo;
        B2 = true;
        break;
    // and so on for other text views
}