我正在使用自定义微调器,我已经了解如何使用ArrayAdapter来自定义自定义弹出窗口的布局。
我遇到的问题是,我不想在我的UI上显示默认微调器,而是想显示图像,然后此图像将根据已选择的项目更改,图像看起来像什么如下所示:
除此之外,有没有办法可以使用wrap_content,但是根据这个图像大小而不是默认的微调器大小来包装它?
答案 0 :(得分:1)
如果我理解正确,你想要一个布局用于Spinner正确(layoutA)中显示的值,而另一个布局(layoutB)用于弹出窗口中的微调器选项视图?
如果是这样,那么它非常简单:在适配器的构造函数中,传递layoutA。然后使用layoutB调用setDropDownViewResource()
。
或者,如果您有自定义适配器类,则可以通过分别覆盖getView()
和getDropDownView()
来获得相同的结果。
将微调器的高度设置为WRAP_CONTENT
应该适用于这种情况(尽管我还没有测试过那个特定位)。
答案 1 :(得分:0)
使用switch case
或if else
它很容易实现,两者都可以正常工作。我已经使用if else
条件通过将图像源附加到我声明的每个参数来实现这个。
以下是代码示例。
spinner = (Spinner) findViewById(R.id.spinner1);
imageview = (ImageView) findViewById(R.id.imageView1);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
//spinner.
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if(arg2==0)
{
imageview.setImageResource(R.drawable.apple);
}
else if(arg2==1)
{
imageview.setImageResource(R.drawable.microsoft);
}
else
{
imageview.setImageResource(R.drawable.google);
}
来源 - http://kamleshnishad.com/android-studio-spinner-example-onclick-change-image/