"ArrayAdapter requires the resource ID to be a TextView"有时会及时执行

"ArrayAdapter requires the resource ID to be a TextView" sometimes in time execution

我正在使用 crashlityc 并寻找这个错误几个小时。它有效,但对于一些用户我有这个错误:

android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter.java:394) android.widget.ArrayAdapter.getView (ArrayAdapter.java:362) com.android.internal.os.ZygoteInit.main android.widget.AbsSpinner.onMeasure (AbsSpinner.java:197) android.widget.Spinner.onMeasure (Spinner.java:541) android.support.v7.widget.AppCompatSpinner.onMeasure (AppCompatSpinner.java:418) android.view.View.measure (View.java:17951) (ZygoteInit.java:1200)

在我的 class 我有这个:

private void setPhoneNumbers() {
 ... code .......
  ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner_text, numbers);
  spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  mPhoneNumbersSpinner.setAdapter(spinnerAdapter);
}`

在我的.xml :

  <?xml version="1.0" encoding="utf-8"?>

    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_marginRight="5dp"
      android:ellipsize="end"
      android:maxLines="1"
      android:textColor="@color/menu_header_txt"
      android:textSize="13sp"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@android:id/text1" />`

我想您需要使用下面提到的 ArrayAdapter 构造函数 here:

ArrayAdapter (Context context, 
                int resource, 
                int textViewResourceId, 
                T[] objects)

你的情况:

ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(getActivity(), R.layout.spinner_text, R.id.text1, numbers);