如何解决需要有关文本视图、对话框、布尔语句和切换案例的帮助
我想要的是让用户能够点击一个TextView,之后弹出一个DialogBox,如果用户点击正按钮,一个布尔值从False变为True。
用于以应用货币购买应用项目中的项目。
示例:在TextView里面,给定了物品名称,(Special Fruit),当TextView被点击时,弹出一个DialogBox,询问,你确定要购买这个物品吗?是/否。如果用户点击是并点击了 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",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 点击监听器执行上述操作。
然后检查开关盒内的视图 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
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。