AutoCompleteTextView无法显示建议项

4

我正在尝试创建一款Android应用程序,在其中我想使用AutoCompleteTextView来显示建议,以减少用户的努力。目前,我正在测试我编写的一小段代码,但我没有得到任何建议。我将代码放在下面,请帮我找出错误。

public class MainActivity extends Activity {

private ArrayList<Map<String, String>> objects;
private AutoCompleteTextView autotextView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    autotextView = (AutoCompleteTextView) findViewById(R.id.autocompleteView);

    objects = new ArrayList<Map<String, String>>();

    Map<String, String> NamePhoneType = new HashMap<String, String>();
    NamePhoneType.put("Name", "John");
    NamePhoneType.put("Phone", "1234567890");
    objects.add(NamePhoneType);
    NamePhoneType.put("Name", "Steve");
    NamePhoneType.put("Phone", "4567890123");
    objects.add(NamePhoneType);

    ArrayAdapter<Map<String, String>> am = new ArrayAdapter<Map<String, String>>(
            this, R.layout.list_item, objects);

    autotextView.setAdapter(am);
}
}

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/ccontName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Name"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#A5000000" />

<TextView
    android:id="@+id/ccontNo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/ccontName"
    android:text="Phone"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#A5000000" />

</RelativeLayout>

https://dev59.com/CWcs5IYBdhLWcg3woVh- - Omarj
1
我猜你应该编写自己的ArrayAdapter来处理列表项。实际上,我很惊讶这个应用程序没有崩溃。 - yahya
当我查看布局XML代码时,我没有看到任何类型为AutoCompleteTextView的元素/视图声明具有名为autocompleteView的Id属性,或者我漏掉了什么? - yaddly
1个回答

5
我曾经遇到了和你一样的问题,但是通过添加以下内容成功解决:
    am.notifyDataSetChanged();

之后

    ArrayAdapter<Map<String, String>> am = new ArrayAdapter<Map<String, String>>(this, R.layout.list_item, objects);
    autotextView.setAdapter(am);

希望这能帮到你:)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接