Android + java.lang.NullPointerException: Intenta invocar el método de interfaz
Al compilar mi código consigo este error ("java.lang.NullPointerException: Intento de invocar el método de la interfaz") y todavía no puedo calcular porqué.
Aquí está mi código:
- ¿Por qué obtengo NullPointerException cuando uso setCurrentText o setText para TextSwitcher?
- La aplicación se bloquea al intentar establecer una conexión VPN?
- Android: error al abrir el archivo de rastreo: ningún archivo o directorio de este tipo
- NullPointerException al llamar a la clase auto-escrita
- v7 RecyclerView NullPointerException AccessibilityDelegateCompat.getBridge ()
public class FragmentDetails extends Fragment { private TextView text1, text2, text3, text4, text5 = null; private Button button1 = null; OnDetailsDefinedListener mCallback; public interface OnDetailsDefinedListener { void executeOrder(String a, String b, String c, String d, String e); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView = inflater.inflate(R.layout.fragment_details, container, false); button1 = (Button) rootView.findViewById(...); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { text1 = getActivity().findViewById(...); text2 = getActivity().findViewById(...); text3 = getActivity().findViewById(...); text4 = getActivity().findViewById(...); text5 = getActivity().findViewById(...); String a = text1.getText().toString(); String b = text2.getText().toString(); String c= text3.getText().toString(); String d= text4.getText().toString(); String e= text5.getText().toString(); //this is where my error appears mCallback.executeOrder(a, b, c, d, e); } return rootView; } }
(aquí está mi mensaje de error)
05-26 09:39:20.868 2916-2916/? E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.blueHatCoder.myapplication, PID: 2916 java.lang.NullPointerException: Attempt to invoke interface method 'void com.example.blueHatCoder.myapplication.FragmentDetails$OnDetailsDefinedListener.executeOrder(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)' on a null object reference at com.example.blueHatCoder.myapplication.FragmentDetails$6.onClick(FragmentDetails.java:131) at android.view.View.performClick(View.java:4756) at android.view.View$PerformClick.run(View.java:19749) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Gracias de antemano.
- Obtener orientación de la imagen de MediaStore.Images.Media.DATA
- ¿Cuál es el uso principal de "Añadir contrato de método a ..." Android Studio
- Convertir objeto nulo en String
- Excepción de puntero nulo al instanciar la resolución de contenido?
- Android java.lang.NullPointerException: println necesita un mensaje
- Excepción de puntero NULL de getSupportFragmentManager de Android en Fragmento
- Android ActivityOptions.isReturning () NullPointerException
- Class.getResource (className) que me da NullPointerException
mCallback
nunca se inicia. usted tiene que hacer algo como eso:
mCallback = new OnDetailsDefinedListenerImpl(); mCallback.executeOrder(a, b, c, d, e);
o
mCallback = new OnDetailsDefinedListener(){ @Override void executeOrder(String a, String b, String c, String d, String e){ //doSomething }; }
Su variable mCallback
está definida pero no inicializada. Tienes que inicializarlo antes de poder usarlo.
Debe agregar un método público a la clase FragmentDetails.
public setOnDetailsDefinedListener(OnDetailsDefinedListener listener) { mCallback = listener; }
Y sólo implementarlo en la clase de llamada. al igual que lo hace cuando se agrega botón de escucha.
mFragmentDetails.setOnDetailsDefinedListener(new OnDetailsDefinedListener() { // You code })
Tal vez usted necesita utilizar onAttach (actividad actividad) fragmentos método
public void onAttach(Activity activity){ super.onAttach(activity); if(activity instanceof onSomeListener){ mListener=(onSomeListener) activity; } }
- Divisor de menú emergente para el tema de compatibilidad de aplicaciones
- GreenBroot EventBus no pudo enviar el evento