gpt4 book ai didi

android - ArrayAdapter.getCount() 空指针异常

转载 作者:行者123 更新时间:2023-11-29 14:07:44 26 4
gpt4 key购买 nike

我的 android 应用程序中有以下代码:

   protected ArrayList<String> message;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.where_to_go);

whereToGoField = (AutoCompleteTextView)findViewById(R.id.WhereToGoField);

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line);
whereToGoField.addTextChangedListener(whereToGoFieldInputWatcher);
whereToGoField.setAdapter(adapter);
}


TextWatcher whereToGoFieldInputWatcher = new TextWatcher() {
public void onTextChanged(final CharSequence s, int start, int before, int count) {
Thread t = new Thread() {
public void run() {
Object o = Server.getStreetSuggestions(s.toString());
if (o!=null) {
message = (ArrayList<String>)o;
}
messageHandler.sendEmptyMessage(0);
}
};
t.start();
}

};

private Handler messageHandler = new Handler() {
public void handleMessage(Message msg) {
adapter.clear();
for(int i=0; i<message.size(); ++i){
adapter.add(message.get(i));
}
adapter.notifyDataSetChanged();
}
};

基本上它从我的服务器获取响应并在 autocompletetextview 中填充此响应。

但有时我会收到以下错误:

04-25 16:08:42.288: ERROR/AndroidRuntime(6193): FATAL EXCEPTION: main
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): java.lang.NullPointerException
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:322)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.widget.AdapterView.checkFocus(AdapterView.java:720)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.widget.AdapterView$AdapterDataSetObserver.onInvalidated(AdapterView.java:844)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.database.DataSetObservable.notifyInvalidated(DataSetObservable.java:74)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.widget.BaseAdapter.notifyDataSetInvalidated(BaseAdapter.java:85)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.widget.ArrayAdapter$ArrayFilter.publishResults(ArrayAdapter.java:500)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.widget.Filter$ResultsHandler.handleMessage(Filter.java:313)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.os.Handler.dispatchMessage(Handler.java:130)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.os.Looper.loop(Looper.java:154)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at android.app.ActivityThread.main(ActivityThread.java:4668)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at java.lang.reflect.Method.invokeNative(Native Method)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at java.lang.reflect.Method.invoke(Method.java:552)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:917)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
04-25 16:08:42.288: ERROR/AndroidRuntime(6193): at dalvik.system.NativeStart.main(Native Method)

我不明白它是从哪里来的。

你能帮我解决一下吗?

最佳答案

看看这是否有帮助(添加 setNotifyOnChange):

private Handler messageHandler = new Handler() {
public void handleMessage(Message msg) {
adapter.setNotifyOnChange(false); //stop notification while adding data
adapter.clear();
for(int i=0; i<message.size(); ++i){
adapter.add(message.get(i));
}
adapter.notifyDataSetChanged();
}
};

关于android - ArrayAdapter.getCount() 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5777357/

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