自定义样式setDropDownViewResource Android Spinner

时间:2011-06-26 16:25:32

标签: java android xml

下面是我当前的代码,它将我的array_spinner添加到我的适配器,然后将适配器添加到我的微调器。 的问题:

1-我不确定如何使用以下代码设置下拉样式:areaspinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);以及如何应用自定义视图/文本视图?我需要在微调器下拉列表中设置文本项的样式。

2-我是否需要为此视图创建单独的layout.xml文件?

任何信息都会很棒。谢谢!

array_spinner=new String[4];
array_spinner[0]="Select";
array_spinner[1]="George Washington";
array_spinner[2]="Benjamin Franklin";
array_spinner[3]="Thomas Jefferson";

 //CREATE SPINNER
areaspinner = (Spinner) findViewById(R.id.areaspinner);

ArrayAdapter<String> adapter = 
    new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item,array_spinner);
areaspinner.setAdapter(adapter);

4 个答案:

答案 0 :(得分:8)

  1. 如果您打算针对微调器视图选择的项目样式实现下拉列表项的不同样式,则必须确实将自定义布局ID提供给setDropDownViewResource()。在您的布局中,您只需将TextView声明为根元素,因为ArrayAdapter

  2. 需要它
  3. 是的,您需要在res / layout目录中为您声明的每个布局创建单独的your_layout_name.xml文件。

答案 1 :(得分:2)

这是您在代码中使用setDropDownViewResource()的方法

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
areaspinner.setAdapter(adapter);

当然有帮助。

答案 2 :(得分:0)

您不必使用setDropDownViewResource(),您可以简单地提供自己的主题,并覆盖样式。请在此处查看我的回答:Android Spinner - How to make dropdown view transparent?

答案 3 :(得分:0)

使用TextView作为根视图定义客户spinner_layout.xml。 设置适配器布局时,请使用以下代码:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;

        }).AddJwtBearer(options =>
        {
            options.Authority = Configuration["Auth0:Authority"];
            options.Audience = Configuration["Auth0:Audience"];
            options.RequireHttpsMetadata = false;
        });          
    }

OR

ArrayAdapter<String> adapter1 = new ArrayAdapter<>(getActivity(), R.layout.layout_spinner, days);