2016-11-20 2 views
-2

Ich habe eine Absicht für ein Listenelement festgelegt, sodass beim Klicken auf das Element eine neue Aktivität gestartet wird. Meine app stürzt ab, wenn ich auf der Liste Element klicken und diese Meldung im logcat angezeigt:Verursacht von: java.lang.IllegalArgumentException:

Verursacht durch: java.lang.IllegalArgumentException: Keine Aussicht für id gefunden 0x7f0c0055 (com.example.android.sunshine: id/Container) für Fragment DetailFragment {470791f # 0 id = 0x7f0c0055}

Hier ist Fragment, das das Detail die Nachricht an sich reffering:

public static class DetailFragment extends Fragment { 

    public DetailFragment() { 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_detail, container, false); 

     // The detail Activity called via intent. Inspect the intent for forecast data. 
     Intent intent = getActivity().getIntent(); 
     if (intent != null && intent.hasExtra(Intent.EXTRA_TEXT)) { 
      String forecastStr = intent.getStringExtra(Intent.EXTRA_TEXT); 
      ((TextView) rootView.findViewById(R.id.detail_text)) 
        .setText(forecastStr); 
     } 
     return rootView; 
    } 

} 

}

+0

Stellen Sie sicher, dass die Datei 'fragment_detail' die Textansicht' detail_text' enthält. – Razgriz

+0

Yup, die fragment_detail-Datei enthält die detail_text-Textansicht. –

+0

sollten Sie versuchen, den Cache zu löschen und neu zu erstellen. Ich habe diesen Fehler viele Male getroffen. –

Antwort

0

Statt direkt Stri bekommen ng Wert von intent, versuchen, String-Wert von Bundle, wie im folgenden Beispiel, erhalten Sie verursacht durch: java.lang.IllegalArgumentException: Keine Ansicht gefunden, weil es abstürzt, bevor die Sicht auf das Fragment zurückgibt.

Intent intent = getActivity().getIntent(); 
if (intent != null && intent.getExtras()!= null) { 
    String forecastStr = intent.getExtras().getString(Intent.EXTRA_TEXT, ""); 
    ((TextView) rootView.findViewById(R.id.detail_text)) 
        .setText(forecastStr); 
} 
Verwandte Themen