Fragmento de Android y referencia de objeto nulo

Estoy tratando de conseguir mi trabajo fragmento y no puedo hacer lo que estoy tratando de hacer.

El error que estoy recibiendo es:

Java.lang.NullPointerException: Intenta invocar el método virtual 'void android.widget.TextView.setText (java.lang.CharSequence)' en una referencia de objeto nulo

Aquí está el código:

public class FragmentOne extends Fragment { private TextView one; public FragmentOne() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); one = (TextView) getActivity().findViewById(R.id.one); // Displaying the user details on the screen one.setText("kjhbguhjg"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment1, container, false); } } 

No tengo ni idea de por qué no funciona. Estoy probando esta clase sólo para ver si el texto se cambiará en el textview. Estoy usando la identificación correcta porque he comprobado que como 10 veces, pero creo que el problema es porque textview uno es un objeto nulo. ¿Pero por qué no encuentra el id?

onCreate() se llama antes de onCreateView() y por lo tanto no podrá acceder a ella en onCreate() .

Solución: Mover

 one = (TextView) getActivity().findViewById(R.id.one); 

A onViewCreated() lugar.

Vea la imagen a continuación para obtener una visión general del ciclo de vida de los fragmentos .

El nuevo fragmento se ve así:

 public class FragmentOne extends Fragment { private TextView one; public FragmentOne() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment1, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState){ one = (TextView) getActivity().findViewById(R.id.one); // Displaying the user details on the screen one.setText("kjhbguhjg"); } } 

Ciclo de vida del fragmento

O. En lugar de volver a escribir

 public void onViewCreated(View view, Bundle savedInstanceState) 

Puede cambiar ligeramente su onCreateView por lo que parece

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View rootView = inflater.inflate(R.layout.fragment1, container, false) one = (TextView) rootView.findViewById(R.id.one) return rootView; } 
  • Activación de la conexión wifi mediante programación
  • Java.lang.ClassCastException: [Ljava.lang.Object; No se puede emitir a com.sakhnin.classes.MonthlySummary
  • En la API de GoogleCloudMessaging, ¿cómo manejar la renovación o caducidad del ID de registro?
  • ¿Hay buenos ORMs (preferiblemente implementaciones JPA) que soportan SQLite (en Android)?
  • Cómo omitir o evitar la opción de "volver a tomar y revisar" después de capturar la foto de la cámara mediante ACTION_IMAGE_CAPTURE
  • Java.lang.IllegalArgumentException: Caracteres ilegales en la consulta en índice 59
  • Ejemplo de navegación con desplazamiento rápido en android?
  • ¿Cómo extender la clase SQLiteDatabase?
  • Android java.lang.NoClassDefFoundError: org.jsoup.Jsoup
  • Android - El archivo de base de datos Sqlite no se elimina mientras se desinstala una aplicación?
  • Cómo llamar a las actividades de un hilo no actividad?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.