I'm getting some data from 3 spinner and I get an error, it says it's a null object, however, this same code works for me in another activity, only now I'm using it in a fragment and it gives me an error.
This is the logcat
05-03 23:14:29.952 32009-32009/com.example.matias.finalcode E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.matias.finalcode, PID: 32009
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.matias.finalcode/com.example.matias.finalcode.InicioActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.access$800(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5258)
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:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at com.example.matias.finalcode.Fragments.InicioFragment_LookingService.onCreateView(InicioFragment_LookingService.java:161)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2261)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2239)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3231)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3181)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:572)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1220)
at android.app.Activity.performStart(Activity.java:5995)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2272)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.access$800(ActivityThread.java:149)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5258)
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:898)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
05-03 23:14:29.954 788-6026/? W/ActivityManager: Force finishing activity com.example.matias.finalcode/.InicioActivity
And this is the code of my spinner and the variables where I get the spinner data
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View vista = inflater.inflate(R.layout.fragment_inicio_lookingservice, container, false);
signOut = (Button) vista.findViewById(R.id.sign_out); //--------ESTO ES PARA LOGOUT
email = (TextView) vista.findViewById(R.id.email);
btnseleccionar = (Button) vista.findViewById(R.id.btnseleccionar);
spinnerPro = (Spinner) vista.findViewById(R.id.spinnerProvincia);
spinnerLoc = (Spinner) vista.findViewById(R.id.spinnerLocalizacion);
spinnerTipoEmpresa = (Spinner) vista.findViewById(R.id.spinnerTipoEmpresa);
spinnerElegirEmpresa = (Spinner) vista.findViewById(R.id.spinnerElegirEmpresa);
email.setVisibility(View.INVISIBLE);
// ESTO ES PARA LOS SPINNER
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getActivity(),
R.array.array_provincias,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerPro.setAdapter(adapter);
spinnerPro.setOnItemSelectedListener(this);
spinnerLoc.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// Tu código aquí
final String selecteditemLoc = spinnerLoc.getSelectedItem().toString();
//txtloc.setText(selecteditem);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// Tu código aquí
}
});
ArrayAdapter<CharSequence> adapterempresa = ArrayAdapter.createFromResource(
getActivity(),
R.array.array_tipoempresa,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerTipoEmpresa.setAdapter(adapterempresa);
spinnerTipoEmpresa.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
final String selecteditemEmp = spinnerTipoEmpresa.getSelectedItem().toString();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
final String selecteditemLoc = spinnerLoc.getSelectedItem().toString();
String selecteditemEmp = spinnerTipoEmpresa.getSelectedItem().toString();
final String provincias = provincia;
mDatabase.child("z Empresas " + provincia).child(selecteditemLoc).child(selecteditemEmp).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Is better to use a List, because you don't know the size
// of the iterator returned by dataSnapshot.getChildren() to
// initialize the array
final List<String> Usuarios = new ArrayList<String>();
for (DataSnapshot usuarioSnapshot: dataSnapshot.getChildren()) {
String Usuario = usuarioSnapshot.child("Usuario").getValue(String.class);
Usuarios.add(Usuario);
}
spinnerElegirEmpresa = (Spinner) vista.findViewById(R.id.spinnerElegirEmpresa);
ArrayAdapter<String> empresasAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, Usuarios);
empresasAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerElegirEmpresa.setAdapter(empresasAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
// ESTO ES PARA LOS SPINNER
return vista;
}
// ESTO ES PARA LOS SPINNER FUERA DEL ONCREATEVIEW
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
int[] localidades = {R.array.array_selecciona, R.array.array_sevilla, R.array.array_malaga};
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
getActivity(),
localidades[i],
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerLoc.setAdapter(adapter);
//txtloc.setText(spinnerLoc.getSelectedItem().toString());
//txtpro.setText(adapterView.getItemAtPosition(i).toString());
provincia = adapterView.getItemAtPosition(i).toString();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
// ESTO ES PARA LOS SPINNER
And these are the array from which I get the values for the spinners, they are in the file string.xml
<string-array name="array_tipoempresa">
<item>Selecciona un tipo de empresa</item>
<item>Banco</item>
<item>Farmacia</item>
<item>Notaría</item>
<item>Ferretería</item>
<item>Atención pública</item>
<item>Hospital</item>
<item>Telefonía</item>
<item>Otro tipo de empresas</item>
</string-array>
<string-array name="array_selecciona">
<item>Selecciona una ciudad</item>
</string-array>
<string-array name="array_provincias">
<item>Selecciona un país</item>
<item>Sevilla</item>
<item>Malaga</item>
</string-array>
<string-array name="array_sevilla">
<item>Selecciona una ciudad</item>
<item>Tomares</item>
<item>Camas</item>
</string-array>
<string-array name="array_malaga">
<item>Selecciona una ciudad</item>
<item>Casares</item>
<item>Estepona</item>
</string-array>
What will be the problem that tells me that it is a null object reference, if this same code works for me in a normal activity and now in a fragment it gives me an error ...
Of course, thank you very much for your time!