gpt4 book ai didi

java - 在用户完成多个警报对话框后显示 Toast

转载 作者:行者123 更新时间:2023-11-29 04:38:56 24 4
gpt4 key购买 nike

我正在执行以下操作:根据需要输入的库存数量,我生成一个 EditText 对话框。

例如,如果我在 Stock 中输入数字 5:

IMG:/image/iP4YL.jpg

我生成了一个对话框 5 次,您可以在其中输入详细信息,并且标题会随着我输入数据而改变。

IMG:/image/rhE60.jpg

我不明白的是我希望标题如何出现:

  • 产品 1/5 产品 2/5、产品 3/5、产品 4/5 产品 5/5。

我实际得到的是:

  • 产品 5/5 产品 4/5 产品 3/5、2/5 产品、产品 1/5。

我还想在添加最终产品后显示一个 Toast。问题是 Toast 在 Click 事件后立即显示。

我的代码如下:

btnContinuar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int stock = Integer.parseInt(input_layout_stock.getEditText().getText().toString());
for(int i = 1 ; i <= stock ; i++){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setTitle("Producto " + i + "/" + stock);
//builder.setMessage("Agregar");
builder.setView(R.layout.dialog_add_product);
builder.setView(inflater.inflate(R.layout.dialog_add_product, null));
builder.setPositiveButton("Continuar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
builder.create();
if(i == 5){
Toast.makeText(getActivity(), "Se agregaron " + stock + " productos con éxito.", Toast.LENGTH_SHORT).show();
}
}
}
});

最佳答案

for 循环不会等待对话框被关闭来创建下一个对话框,因此第二个对话框与第一个重叠,第三个与第二个重叠,依此类推。您需要做的是在前一个对话框的 onDismiss 回调中显示每个对话框。

我简化了代码以用作示例。您可以将其余代码添加回您需要的位置。

private int current = 1; // Global variable



final int stock = Integer.parseInt("5");
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Producto " + current + "/" + stock);
builder.setPositiveButton("Continuar", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (current < stock) {
current++;

// TODO Create your next dialog here.
builder.setTitle("Producto " + current + "/" + stock);
builder.show();
} else {
// This was the last dialog. Show Toast.
Toast.makeText(getActivity(), "Se agregaron " + stock + " productos con éxito.", Toast.LENGTH_SHORT).show();
current = 1;
}
}
});
builder.show();

关于java - 在用户完成多个警报对话框后显示 Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40076693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com