Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 微调器适配器空指针异常_Java_Android_Eclipse_Android Studio_Android Spinner - Fatal编程技术网

Java 微调器适配器空指针异常

Java 微调器适配器空指针异常,java,android,eclipse,android-studio,android-spinner,Java,Android,Eclipse,Android Studio,Android Spinner,这个问题很奇怪,所以请尽量容忍我 我已经手动将一个Android项目从AndroidStudio 1.3.2移植到EclipseMars4.5.0 在这个(看似成功的)端口之后,我面临以下问题: 我的自定义微调器适配器已停止工作 这是在自定义微调器适配器中发生故障的代码段: @Override public View getDropDownView(int position, View convertView, ViewGroup par

这个问题很奇怪,所以请尽量容忍我

我已经手动将一个Android项目从AndroidStudio 1.3.2移植到EclipseMars4.5.0

在这个(看似成功的)端口之后,我面临以下问题: 我的自定义微调器适配器已停止工作

这是在自定义微调器适配器中发生故障的代码段:

 @Override
public View getDropDownView(int position, View convertView,
                            ViewGroup parent) {
    if (convertView == null) {
        convertView = View.inflate(getContext(), R.layout.spinner_dropdown_item, null);
    }
    TextView label = (TextView) convertView.findViewById(R.id.spinner_text);
    label.setText(getItem(position).getName());

    return label;
}
运行调试器时,没有任何语句失败。检查标签变量,文本已设置,一切正常。但是,当函数结束时,我得到以下堆栈跟踪:

    09-07 15:14:57.888: E/AndroidRuntime(5650): FATAL EXCEPTION: main
09-07 15:14:57.888: E/AndroidRuntime(5650): Process: com.example.objectives, PID: 5650
09-07 15:14:57.888: E/AndroidRuntime(5650): java.lang.NullPointerException
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.widget.TextView.checkForRelayout(TextView.java:8014)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.widget.TextView.setText(TextView.java:4864)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.widget.TextView.setText(TextView.java:4717)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.widget.TextView.setText(TextView.java:4692)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at com.example.objectives.adapters.StageSpinnerAdapter.getDropDownView(StageSpinnerAdapter.java:44)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.support.v7.widget.AppCompatSpinner$DropDownAdapter.getDropDownView(AppCompatSpinner.java:624)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.support.v7.widget.AppCompatSpinner$DropDownAdapter.getView(AppCompatSpinner.java:620)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.support.v7.internal.widget.ListViewCompat.measureHeightOfChildrenCompat(ListViewCompat.java:290)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.support.v7.widget.ListPopupWindow.buildDropDown(ListPopupWindow.java:1200)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.support.v7.widget.ListPopupWindow.show(ListPopupWindow.java:584)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.support.v7.widget.AppCompatSpinner$DropdownPopup.show(AppCompatSpinner.java:766)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.support.v7.widget.AppCompatSpinner.performClick(AppCompatSpinner.java:424)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.view.View$PerformClick.run(View.java:19422)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.os.Handler.handleCallback(Handler.java:733)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.os.Handler.dispatchMessage(Handler.java:95)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.os.Looper.loop(Looper.java:136)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at android.app.ActivityThread.main(ActivityThread.java:5479)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at java.lang.reflect.Method.invokeNative(Native Method)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at java.lang.reflect.Method.invoke(Method.java:515)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
09-07 15:14:57.888: E/AndroidRuntime(5650):     at dalvik.system.NativeStart.main(Native Method)
好的,所以实际问题是: 此错误仅出现在Eclipse中,而不是Android Studio中

我认为可能有用的其他细节: MinSdk:15,targetSdk:23,maxSdk:23

我会发布任何和所有其他可能需要的细节

非常感谢

编辑: 第44行是:

label.setText(getItem(position).getName());

我认为这与“convertView”有关 在这里:

if (convertView == null) {
        convertView = View.inflate(getContext(), R.layout.spinner_dropdown_item, null);
    }
TextView label = (TextView) convertView.findViewById(R.id.spinner_text);
您得到的textview标签实际上来自上一个convertView


如果您取消convertView的null检查,并创建一个新的convertView,这将很好

您不需要返回视图而不是标签吗?第44行是什么?是否尝试返回convertView而不是标签?为什么返回label而不是convertView?将尝试返回convertView并更新问题。奇怪,因为这不是Android Studio的问题。返回convertView并不能解决问题。。。