为了账号安全,请及时绑定邮箱和手机立即绑定

Spinner 显示黑色

Spinner 显示黑色

牧羊人nacy 2021-11-11 15:48:54
我有一个关于微调器设计的问题。我正在使用此代码生成下拉微调器:@Overridepublic void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_my);    LinearLayout layout = new LinearLayout(this);    ArrayList < String > spinnerArray = new ArrayList < String > ();    spinnerArray.add("one");    spinnerArray.add("two");    spinnerArray.add("three");    spinnerArray.add("four");    spinnerArray.add("five");    Spinner spinner = new Spinner(this);    ArrayAdapter < String > spinnerArrayAdapter = new ArrayAdapter < String > (this,        android.R.layout.simple_spinner_dropdown_item, spinnerArray);    spinner.setAdapter(spinnerArrayAdapter);    layout.addView(spinner);    setContentView(layout);}如何去除阻挡微调器的黑色?
查看完整描述

3 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

layout.addView(spinner);

setContentView(layout);

当您将视图动态添加到布局时。你缺少一些配置。这就是您看到黑匣子的原因。


试试下面的代码:


xml:


<Spinner

    android:id="@+id/planets_spinner"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content" />

活动:


Spinner spinner = (Spinner) findViewById(R.id.spinner);

    // Create an ArrayAdapter using the string array and a default spinner layout

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,

            arraydata, android.R.layout.simple_spinner_item);

    // Specify the layout to use when the list of choices appears

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

    // Apply the adapter to the spinner

    spinner.setAdapter(adapter);


查看完整回答
反对 回复 2021-11-11
?
四季花海

TA贡献1811条经验 获得超5个赞

在您的布局文件夹中创建一个布局文件 simple_list.xml:


<TextView xmlns:android="http://schemas.android.com/apk/res/android"

    android:text="Sample Text"

    android:padding="5dp"

    android:gravity="center"

    android:textColor="@android:color/black"

    android:background="@android:color/white"

    android:orientation="vertical" android:layout_width="match_parent"

    android:layout_height="wrap_content"/>

并在 arrayadapter 中引用它:


ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this,

                R.layout.simple_list, spinnerArray);

更新 1添加这个:


spinner.setBackgroundColor(ContextCompat.getColor(getApplicationContext(),android.R.color.white));


更新 2 在布局文件中使用 Linear 一次而不是使用约束:


 <?xml version="1.0" encoding="utf-8"?> 

    <LineartLayout xmlns:android="schemas.android.com/apk/res/android" xmlns:app="schemas.android.com/apk/res-auto" 

android:id="@+id/linearLayout"

xmlns:tools="schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> </LinearLayout>

将 id 设置为 LinearLayout(您的根视图),然后findViewById用于此视图并将微调器添加到此 rootView 并删除setContentView(layout); 它,如下所示:


LinearLayout layout = new LinearLayout(this);


ArrayList<String> spinnerArray = new ArrayList<String>();

spinnerArray.add("one");

spinnerArray.add("two");

spinnerArray.add("three");

spinnerArray.add("four");

spinnerArray.add("five");


Spinner spinner = new Spinner(this);

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, 

android.R.layout.simple_spinner_dropdown_item, spinnerArray);

spinner.setAdapter(spinnerArrayAdapter);


layout.addView(spinner);


setContentView(layout);


查看完整回答
反对 回复 2021-11-11
?
精慕HU

TA贡献1845条经验 获得超8个赞

//img1.sycdn.imooc.com//618ccb2100016ac907231273.jpg

有趣的是你的代码对我有用。因此,请确保那里没有元素或其他与主题或颜色相关的代码。

查看完整回答
反对 回复 2021-11-11
  • 3 回答
  • 0 关注
  • 318 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信