我正在適應舊的WebOS應用程序到Android和我幾乎所有的手機使用phonegap(因爲舊代碼是JavaScript,這很方便),但我希望使用原生的AutoCompleteTextView用於輸入。我得到一個NullPointerException,可能是由於我的異國混合應用程序。但讓我從頭開始。我追加頁腳(每一個帖子,我發現這裏),像這樣AutoCompleteTextView(ArrayAdapter)PhoneGap中的NullPointerException
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
/* ... boring things here ... */
// http://stackoverflow.com/questions/7320910/android-phonegap-with-native-controls
View footer = View.inflate(getContext(), R.layout.footer, null);
root.addView(footer);
// setContentView(root);
// http://www.kwpro.net/blogs/2011/1/10/1651_Android_AutoComplete_Tutorial_Amendment.html
}
我發現對建議的解決我的問題可能是一個的setContentView博客的一些注意事項,但似乎並沒有工作。無論如何,我使用this(通過java接口通過window.f.setAutoComplete())從javascript設置自動完成文本一次。
public void setAutoComplete(String []s) {
Log.d(TAG, "[native]: setting autocomplete text");
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.inpu);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, s);
textView.setAdapter(adapter);
}
無論如何,一切似乎工作。也就是說,選擇列表彈出,你有時可以選擇一個(有時),然後我得到一個強制關閉應用程序的NullPointerException。我覺得沒有足夠的能力來處理這個問題,所以我想我會公開問問。
的異常轉儲看起來是這樣的:
W/dalvikvm(1832): threadid=11: thread exiting with uncaught exception (group=0x409c01f8)
E/AndroidRuntime(1832): FATAL EXCEPTION: WebViewCoreThread
E/AndroidRuntime(1832): java.lang.NullPointerException
E/AndroidRuntime(1832): at android.widget.AbsListView$RecycleBin.getScrapView(AbsListView.java:5900)
E/AndroidRuntime(1832): at android.widget.AbsListView.obtainView(AbsListView.java:2003)
E/AndroidRuntime(1832): at android.widget.ListPopupWindow$DropDownListView.obtainView(ListPopupWindow.java:1168)
E/AndroidRuntime(1832): at android.widget.ListView.measureHeightOfChildren(ListView.java:1244)
E/AndroidRuntime(1832): at android.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1095)
E/AndroidRuntime(1832): at android.widget.ListPopupWindow.show(ListPopupWindow.java:524)
E/AndroidRuntime(1832): at android.widget.AutoCompleteTextView.showDropDown(AutoCompleteTextView.java:1062)
E/AndroidRuntime(1832): at android.widget.AutoCompleteTextView.updateDropDownForFilter(AutoCompleteTextView.java:939)
E/AndroidRuntime(1832): at android.widget.AutoCompleteTextView.onFilterComplete(AutoCompleteTextView.java:921)
E/AndroidRuntime(1832): at android.widget.Filter$ResultsHandler.handleMessage(Filter.java:285)
E/AndroidRuntime(1832): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(1832): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(1832): at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:728)
E/AndroidRuntime(1832): at java.lang.Thread.run(Thread.java:856)
我最好的猜測是,我正在爲「只有一個線程可以做UI的東西」 ......啊......範式,但我我不知道如何解決這個問題,如果情況不是這樣,我不知道接下來要做什麼。
括號內,我也嘗試了很多事情來獲得JavaScript自動完成工作,但有這麼多的問題,我想如果我可以去本地。如果我不能,我會找出其他東西,但本機控制是如此之好,我希望我能得到這個工作。 – jettero