gpt4 book ai didi

android - 动态 AutoCompleteTextView 上的 NullPointerException

转载 作者:太空狗 更新时间:2023-10-29 14:25:49 26 4
gpt4 key购买 nike

一些用户报告此错误:

java.lang.NullPointerException
at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:291)
at android.widget.AutoCompleteTextView$PopupDataSetObserver$1.run(AutoCompleteTextView.java:1670)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)

这是我的代码 fragment :

    private List<City> autoCompleteCities = new ArrayList<City>();
private List<City> autoCompleteCitiesOld = new ArrayList<City>();
private ArrayAdapter<String> autoCompleteAdapter;
private AutoCompleteTextView cityView;

...

autoCompleteAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line);
autoCompleteAdapter.setNotifyOnChange(true);

cityView = (AutoCompleteTextView) findViewById(R.id.city);

cityView.setAdapter(autoCompleteAdapter);
cityView.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
LogUtil.i("!!!!!!!!!!!!! ontextchanged", s.toString());
autoCompleteAdapter.clear();
autoCompleteCitiesOld = autoCompleteCities;
if (s.toString().length() > 2) {
autoCompleteCities = search(s.toString());
for (City city : autoCompleteCities) {
autoCompleteAdapter.add(city.getDisplayName());
}
}
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}

@Override
public void afterTextChanged(Editable s) {
}
});

它不会发生在我身上,但我有足够的错误报告知道它发生在几个用户身上。知道有什么问题吗?为什么只有少数用户会发生这种情况?

我找到了这个 post但是将获取新的自动完成值放在 AsyncTask 中意味着结果总是比用户输入的内容晚一个字符。

最佳答案

您在哪里将 ArrayList 传递给 ArrayAdapter。在计算 ArrayAdapter 中的列表长度时抛出 NullPointerException。但是列表没有传递给 Adapter,所以默认 Adapter 中的列表对象包含 null。

关于android - 动态 AutoCompleteTextView 上的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com