【问题标题】:AutoCompleteTextview Color set white by defaultAutoCompleteTextview 颜色默认设置为白色
【发布时间】:2020-06-17 11:37:22
【问题描述】:

我在我的 android 应用程序中使用了 AutoCompleteTextView,它工作正常。我面临的唯一问题是建议的颜色默认为白色,即我看不到任何建议。因此,当我开始输入某些内容时,列表会扩展为白色条目(不可见),但是当我单击任何项​​目时,我发现它正在正常工作。只有颜色似乎是问题。我正在使用以下代码。

<AutoCompleteTextView android:id="@+id/location"  android:textColor="#000000"
            android:layout_width="fill_parent" android:layout_height="wrap_content"></AutoCompleteTextView>

和

 ArrayAdapter<String> autoadapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,cities);
            city = (AutoCompleteTextView) findViewById(R.id.location);
            city.setAdapter(autoadapter);
            city.setThreshold(1);
            city.setTextColor(Color.BLACK);

谁能告诉我问题是什么?
-提前致谢

【问题讨论】:

标签: android colors autocompletetextview


【解决方案1】:

这是一个记录的错误,

您可以在同一个链接中找到一些修复它的方法。

Auto complete text view bug

Bug solution

注意:此解决方案不适用于lollipop

希望对你有帮助……

【讨论】:

  • 如果这些链接断开,这个答案将无济于事。值得更新答案以包含链接解决方案的详细信息。
【解决方案2】:

我尝试在setcontext之前设置主题,在arrayAdapter中尝试了不同的资源参数并尝试了不同的主题,但没有任何帮助。

然后我将上下文从“this”更改为“getApplicationContext”,但问题仍然存在。

最后我把上下文参数改成了“getBaseContext()”,问题就解决了。

【讨论】:

  • 这是错误的答案。 getBaseContext() 会导致内存泄漏,而 getApplicationContext() 会导致泄漏。
【解决方案3】:

对于 Lollipop,报告的 bug 中的所有解决方案都将不起作用。

我终于找到了一个与lollipop 和以前的操作系统版本一起使用的解决方案,方法是使用android.R.layout.simple_spinner_dropdown_item 和adapter,如下所示:

ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_spinner_dropdown_item, suggestionList);

这将解决白色文本问题,无需更改主题属性或任何东西。

【讨论】:

  • @Amaresh 我自己试过了..确保您正确使用以前的sn-p..如果您仍然有问题,请分享您的代码,以便我们尝试计算一起解决问题:)
【解决方案4】:

您可以在ArrayAdapter 中使用simple_list_item_1,

ArrayAdapter<String> autoadapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,cities);
            city = (AutoCompleteTextView) findViewById(R.id.location);

另一种解决方法是退出AndroidManifest.xml中的样式

注意:此解决方案不适用于lollipop 操作系统版本

【讨论】:

    【解决方案5】:

    好吧,我们不能设置“建议文本”的颜色,但我们可以改变它的背景!只需使用android:popupBackground="YOUR_COLOR_HEX",如本例所示:

    <AutoCompleteTextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/autocompletetextview"
            android:layout_gravity="center_horizontal"
            android:hint=" ... "
            android:popupBackground="#000000"/>
    

    也适用于棒棒糖! ;)

    【讨论】:

      【解决方案6】:

      你应该使用

      setTheme(android.R.style.Theme); 之前 setContentView

      它对我有用:)

      【讨论】:

        【解决方案7】:

        设置弹窗的背景颜色为city.setDropDownBackgroundResource(R.color.indicator);

        【讨论】:

          【解决方案8】:

          如果还有人遇到同样的问题

          这对我有用

          autocompleteF.setBackgroundColor(color.black);
          

          【讨论】:

            【解决方案9】:

            将此添加到您的主题中:

            <item name="android:autoCompleteTextViewStyle">@style/Widget.AppCompat.AutoCompleteTextView</item>
            

            【讨论】:

              【解决方案10】:

              这对我有用 首先使用这个之前 setContentView()

              setTheme(android.R.style.TextAppearance_DeviceDefault_Medium_Inverse);
              

              您必须更改 values 文件夹中 colors.xml 中的一些颜色

              【讨论】:

                猜你喜欢
                • 2014-10-20
                • 2016-04-28
                • 2016-10-08
                • 1970-01-01
                • 2018-02-16
                • 1970-01-01
                • 1970-01-01
                • 2013-10-26
                • 1970-01-01
                相关资源
                最近更新 更多