MultiAutoCompleteTextView列表项不显示文本

时间:2016-07-21 03:30:41

标签: android

我正在开发Android应用程序,之前我从未使用过 MultiAutoCompleteTextView

在我的 layout.xml 中,我添加了:

<MultiAutoCompleteTextView
    android:id="@+id/autocomplete_subtest"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="4dp"
    android:layout_marginTop="4dp"
    android:ems="10"
    android:text="" />

在我的 DialogFragment

try {
  subtestAutoCompleteTextView = (MultiAutoCompleteTextView) view.findViewById(R.id.autocomplete_subtest);
  ArrayAdapter<String> subtestAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(), android.R.layout.simple_list_item_1, subtests);

  subtestAutoCompleteTextView.setAdapter(subtestAdapter);
  subtestAutoCompleteTextView.setThreshold(1);
  subtestAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
} catch (Exception e) {
  e.printStackTrace();
}

但是,这些项目会以透明文字显示:

enter image description here

如果我单击列表项,使用空文本,它将使用预期选项完成我的MultiAutoCompleteTextView。

知道为什么文字没有显示在该项目上?

3 个答案:

答案 0 :(得分:1)

您应该更改列表项的文本颜色。它可能是白色的,所以变为黑色。

编辑1

为了解释如何解决这个问题,我点了这个链接:How to change text color of simple list item

基本上,使用TextView:

创建自定义layout.xml文件
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tv"
    android:textColor="@color/font_content"
    android:padding="5sp"
    android:layout_width="fill_parent"
    android:background="@drawable/rectgrad"
    android:singleLine="true"
    android:gravity="center"
    android:layout_height="fill_parent"/>

在我的代码中,我改变了:

    ArrayAdapter<String> subtestAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(), R.layout.my_layout_file, subtests);

答案 1 :(得分:0)

更改ArrayAdapter,它将100%工作。我自己为你测试一下。使用这个

ArrayAdapter subtestAdapter = new  ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1,subtests);

子测试对象为String Array。喜欢这个

String [] subtests = {"Enamul","Ashraful", "Tonu", "Shawan","Morshed"};

如果您从数据库或其他地方初始化它并使用ArrayList<String> subtests这样的话。然后,您可以使用3行代码({/ p>)将其从String Array分配给ArrayList

String [] subtests2 = new String[subtests.size()];
for (int i = 0; i < subtests.size(); i++) {
    subtests2[i]=subtests.get(i).toString();
}

ArrayAdapter subtestAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,subtests2);

祝你好运......

答案 2 :(得分:0)

<MultiAutoCompleteTextView
            android:id="@+id/text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:cursorVisible="true"
            android:ellipsize="none"
            android:ems="10"
            android:inputType="textCapWords"
            android:scrollHorizontally="true"
            android:scrollbars="none"
            android:singleLine="true"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@color/black"
            android:background="@null"
             />

在xml文件中尝试以上代码。在我的情况下工作。