2015-01-06 2 views
1

У меня есть эта проблема с прядильщиком и + я новичок на android, поэтому idk, что делать, я искал в течение нескольких дней и ничего не нашел. PLZ help D:Ошибка скручивания Android при повороте экрана

asignatura = (Spinner) findViewById(R.id.spinnerAsignaturas); 
    modificar = 0; 
    // fin inflates 
    Cursor cursor = getContentResolver().query(
      BDProvider.ASIGNATURAS_CONTENT_URI, 
      new String[] { BDProvider.ID, BDProvider.ASIGNATURA_NOMBRE }, 
      null, null, BDProvider.ID); 
    SimpleCursorAdapter adaptador = new SimpleCursorAdapter(this, 
      android.R.layout.simple_spinner_item, cursor, 
      new String[] { BDProvider.ASIGNATURA_NOMBRE }, 
      new int[] { android.R.id.text1 }); 

    adaptador 
      .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    asignatura.setAdapter(adaptador); 
    asignatura.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 
      idAsignatura = (String) ((TextView) arg1).getText(); 
      setIdAsignatura(idAsignatura); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) {} 

    }); 

журнал:

01-06 14:25:54.790: E/AndroidRuntime(5170): java.lang.NullPointerException 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at es.uvigo.esei.dm.p06.InsertarTarea$2.onItemSelected(InsertarTarea.java:85) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.AdapterView.fireOnSelected(AdapterView.java:893) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.AdapterView.selectionChanged(AdapterView.java:880) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.AdapterView.checkSelectionChanged(AdapterView.java:1043) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.AdapterView.handleDataChanged(AdapterView.java:1023) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:180) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.Spinner.onMeasure(Spinner.java:482) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.View.measure(View.java:16458) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:590) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.View.measure(View.java:16458) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.LinearLayout.forceUniformWidth(LinearLayout.java:940) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:920) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.View.measure(View.java:16458) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.View.measure(View.java:16458) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
01-06 14:25:54.790: E/AndroidRuntime(5170):  at android.view.View.measure(View.java:16458) 

это говорит о том, что вид на onItemSelected равна нулю, но я не знаю, почему, я думаю, что курсор принимает данные перед установкой адаптера ....

+0

Каково значение вашего курсора? Это также null? –

ответ

0

ОК я только что нашел простой, но не уверен, что является допустимым способом заставить его работать, но если вы

@Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, 
      int arg2, long arg3) { 
     idAsignatura = (String) ((TextView) arg1).getText(); 
     setIdAsignatura(idAsignatura); 
    } 

принять " arg1 ", и вы делаете это:

@Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int arg2, long arg3) { 

      if(arg1!=null){ 
       setIdAsignatura((String) ((TextView) arg1).getText()); 
      } 
     } 

он не потерпит крах! спасибо Rares Barbatan.

+0

Это предотвращает крах, но это не решает проблему. аналогичный вопрос. Вот мой вопрос: http://stackoverflow.com/questions/33747884/android-nullpointerexception-spinner-onitemselected-view-parameter-is-null-a –

0

Я предполагаю, что ваш TextView пуст, и getText() возвращает null. Вместо приведения непосредственно в строку, попробовать что-то вроде:

CharSequence cidAsignatura = ((TextView) arg1).getText(); 
if (cidAsignatura != null) { 
    setIdAsignatura(cidAsignatura.toString()); 
} 
+0

Нет, это не проблема, проблема в том, что «arg1» имеет значение null, когда вы поворачиваете экран D: все еще есть проблема ... :( –

Смежные вопросы