gpt4 book ai didi

java - onItemClick 中的 Android Studio 警报对话框

转载 作者:行者123 更新时间:2023-12-02 11:20:17 25 4
gpt4 key购买 nike

我在 Android Studio 中使用一个简单的应用程序时遇到了一些问题,该应用程序很简单,您单击一种颜色,背景就会更改为该颜色,但我想添加一个alertDialog,以便它在更改为该颜色之前进行询问。
当我单击颜色时,会出现对话框,但更改颜色的操作不会出现,我希望它停止,所以如果我选择 yes ,它会继续,如果我选择 No ,它不会改变颜色。我不知道点击“否”后如何取消操作。

这是MainActivity中的代码:

 @Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to choose this color?")
.setTitle("Change color")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {

}
});
builder.create().show();

String msg=((TextView) view).getText().toString();
ShowMessage(msg);

int[]colorsCodes = new int[]{
getResources().getColor(R.color.White),
getResources().getColor(R.color.Black),
getResources().getColor(R.color.Red),
getResources().getColor(R.color.Blue),
getResources().getColor(R.color.Green),
getResources().getColor(R.color.Yellow),
getResources().getColor(R.color.Orange),
getResources().getColor(R.color.Pink),
getResources().getColor(R.color.Violet),
getResources().getColor(R.color.Brown)};



myListView.setBackgroundColor(colorsCodes[i]);

编辑:
我添加了myListView.setBackgroundColor(colorsCodes[i]);函数在警报对话框的"is"选项中,并且还在 onItemClick() 之外声明了 ColorCodes,一切正常,除了当我单击"is"时,应用程序崩溃...

 AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to choose this color?")
.setTitle("Change color")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
myListView.setBackgroundColor(colorsCodes[i]);

}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {

}
});

编辑:谢谢,我现在解决了,问题是这个函数

public void onItemClick(AdapterView<?> adapterView, View view, final int i, long l) {

正在使用 int i 以及“yes”选项,所以我只是将其重命名为 j

public void onClick(DialogInterface dialogInterface, int j) {
myListView.setBackgroundColor(colorsCodes[i]);

}

最佳答案

你必须放置变色功能

myListView.setBackgroundColor(colorsCodes[i]);

在setPositiveButton函数的onClick函数内。您可以在 setNegativeButton 函数中将其留空。

P.S.-不要忘记在 onItemClick 函数之前定义颜色代码。

关于java - onItemClick 中的 Android Studio 警报对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49971473/

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