gpt4 book ai didi

java - 具有自定义背景颜色的Android AlertDialog setMultiChoiceItems

转载 作者:太空狗 更新时间:2023-10-29 14:16:27 26 4
gpt4 key购买 nike

我得到了这个带有多项选择项选择的 alertDialog:

builder.setTitle(R.string.layer_options_title)
.setMultiChoiceItems(availableOptions, selectedLayerOptions, new DialogInterface.OnMultiChoiceClickListener() {
...
});

在哪里

availableOptions = getApplicationContext().getResources().getStringArray(R.array.layer_options);

来自

<string-array name="layer_options">
<item>Should have green background</item>
<item>Should have yellow background</item>
<item>Should have orange background</item>
<item>Should have blue background</item>
</string-array>

有什么办法可以让这些多选题有背景色吗?

最佳答案

是的,有办法。将您的复选框放在布局中并赋予布局背景颜色。这就是我能做到的:

AlertDialog.Builder alert = new AlertDialog.Builder(this);
LinearLayout mainLayout = new LinearLayout(this);
mainLayout.setOrientation(LinearLayout.VERTICAL);

LinearLayout layout1 = new LinearLayout(this);
layout1.setOrientation(LinearLayout.HORIZONTAL);
CheckBox cb1 = new CheckBox(getApplicationContext());
cb1.setText("Easy");
layout1.addView(cb1);
layout1.setBackgroundColor(Color.BLUE);
layout1.setMinimumHeight(50);

LinearLayout layout2 = new LinearLayout(this);
layout2.setOrientation(LinearLayout.HORIZONTAL);
layout2.addView(new TextView(this));
CheckBox cb2 = new CheckBox(getApplicationContext());
cb2.setText("Normal");
layout2.addView(cb2);
layout2.setBackgroundColor(Color.CYAN);
layout2.setMinimumHeight(50);

LinearLayout layout3 = new LinearLayout(this);
layout3.setOrientation(LinearLayout.HORIZONTAL);
CheckBox cb3 = new CheckBox(getApplicationContext());
cb3.setText("Hard");
layout3.addView(cb3);
layout3.setBackgroundColor(Color.GREEN);
layout3.setMinimumHeight(50);

mainLayout.addView(layout1);
mainLayout.addView(layout2);
mainLayout.addView(layout3);
alert.setTitle("Custom alert demo");
alert.setView(mainLayout);
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alert.setPositiveButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getBaseContext(), "done", Toast.LENGTH_SHORT).show();
}
});

alert.show();

结果:

The result

首先,我创建了一个主布局(垂直),如您在代码中所见。然后,我为每个复选框创建了一个水平布局。在这种情况下,您可以使用元素(复选框、项目等)的颜色和字体。

关于java - 具有自定义背景颜色的Android AlertDialog setMultiChoiceItems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21496101/

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