android - ArrayAdapter<String> 中的 getPosition(item) 给出 NullPointerException

标签 android android-fragments

我试图搜索我的问题,但没有成功。 我在补ArrayAdapter<String> parkingLotAdapter来自数据库(Parse.com)。我将此适配器分配给微调器。微调器工作正常,显示项目列表。但是当我尝试通过 getPosition(item) 获取适配器中项目之一的位置时我得到 NullPointerException。

List<String> list = new ArrayList<String>();

for (ParseObject temp : parkingList) {
     list.add(temp.getString("parking_lot"));
     }
parkingLotAdapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item, list);
parkingLotAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
parkinglotSpinner.setAdapter(parkingLotAdapter);

int pos4 = parkingLotAdapter.getPosition("A123");
parkinglotSpinner.setSelection(pos4);

当我使用 getPosition(item) 时与我从资源中填充的其他微调器一起使用 ArrayAdapter<CharSequence> ,一切正常。你能帮我解决这个问题吗?

我的日志:

06-17 09:40:13.927: W/dalvikvm(26031): threadid=1: thread exiting with uncaught exception (group=0x41307300)
06-17 09:40:13.927: E/AndroidRuntime(26031): FATAL EXCEPTION: main
06-17 09:40:13.927: E/AndroidRuntime(26031): java.lang.NullPointerException
06-17 09:40:13.927: E/AndroidRuntime(26031):    at me.aizon.app.fragments.RegisterFragment$LoadParkingSpinnerASYNC.onPostExecute(RegisterFragment.java:396)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at me.aizon.app.fragments.RegisterFragment$LoadParkingSpinnerASYNC.onPostExecute(RegisterFragment.java:1)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at android.os.AsyncTask.finish(AsyncTask.java:631)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at android.os.AsyncTask.access$600(AsyncTask.java:177)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at android.os.Looper.loop(Looper.java:137)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at android.app.ActivityThread.main(ActivityThread.java:4746)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at java.lang.reflect.Method.invokeNative(Native Method)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at java.lang.reflect.Method.invoke(Method.java:511)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:917)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
06-17 09:40:13.927: E/AndroidRuntime(26031):    at dalvik.system.NativeStart.main(Native Method)

最佳答案

Try this way,hope this will help you to solve your problem.

You have already list object to try to get index from list instead of adapter.

List<String> list = new ArrayList<String>();

Replace this code:
int pos4 = parkingLotAdapter.getPosition("A123");
parkinglotSpinner.setSelection(pos4);

With this:
parkinglotSpinner.setSelection(list.indexOf("A123"))

关于android - ArrayAdapter<String> 中的 getPosition(item) 给出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24255753/

相关文章:

android - 在 ViewPager 中获取 Activity 页面并更新内容

java - ListFragment 在 fragment 中插入列表 Activity 时导致错误

android - 在 GridView 上准确显示 n 行

android - 在IOS中将android DP转换为Points

android - 如何避免 Interface-Hell 和 Eventbus-Confusion?

android - Fragment 中 onCreateView 和 onViewCreated 的区别

java - SwipeRefreshLayout 以编程方式触发

android - 如何使用回调对挂起函数进行单元测试

android - 自定义 fragment 的偏好

android - 使用 FragmentTabHost 在 fragment 之间切换动画