I am trying to do a simple spinner with with 4 options, I create an adapter and set it to the spinner, but when I test it with the android emulator just appear the next error:
05-06 00:43:56.948: E/AndroidRuntime(831): FATAL EXCEPTION: main
05-06 00:43:56.948: E/AndroidRuntime(831): java.lang.RuntimeException: Unable to start activity ComponentInfo{economico.mx.uv/economico.mx.uv.MainActivity}: java.lang.NullPointerException
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.os.Handler.dispatchMessage(Handler.java:99)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.os.Looper.loop(Looper.java:137)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.ActivityThread.main(ActivityThread.java:5103)
05-06 00:43:56.948: E/AndroidRuntime(831): at java.lang.reflect.Method.invokeNative(Native Method)
05-06 00:43:56.948: E/AndroidRuntime(831): at java.lang.reflect.Method.invoke(Method.java:525)
05-06 00:43:56.948: E/AndroidRuntime(831): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
05-06 00:43:56.948: E/AndroidRuntime(831): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-06 00:43:56.948: E/AndroidRuntime(831): at dalvik.system.NativeStart.main(Native Method)
05-06 00:43:56.948: E/AndroidRuntime(831): Caused by: java.lang.NullPointerException
05-06 00:43:56.948: E/AndroidRuntime(831): at economico.mx.uv.MainActivity.onCreate(MainActivity.java:36)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.Activity.performCreate(Activity.java:5133)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-06 00:43:56.948: E/AndroidRuntime(831): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
05-06 00:43:56.948: E/AndroidRuntime(831): ... 11 more
This is my code:
package economico.mx.uv;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import android.os.Build;
public class MainActivity extends ActionBarActivity {
private Spinner criterioBusq;
private EditText camBusq;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
camBusq=(EditText)findViewById(R.id.camBusq);
criterioBusq=(Spinner)findViewById(R.id.criterioBusq);
String []opciones={"Campus","Facultad","Nombre","Cargo"};
ArrayAdapter adaptador = new ArrayAdapter(this,android.R.layout.simple_spinner_item, opciones);
criterioBusq.setAdapter(adaptador);
}
I have no idea what I am doing wrong, so thank you beforehand for read it.
Do not load the fragment first as its always get your Bundle
null first so it will always load the PlaceholderFragment
and then it will go for finding the EditText
and your other views which are obviously not in your PlaceholderFragment
layout file. So it will throw the nullpointer error.
Try out as below:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
camBusq=(EditText)findViewById(R.id.camBusq);
criterioBusq=(Spinner)findViewById(R.id.criterioBusq);
String []opciones={"Campus","Facultad","Nombre","Cargo"};
ArrayAdapter adaptador = new ArrayAdapter(this,android.R.layout.simple_spinner_item, opciones);
criterioBusq.setAdapter(adaptador);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.