I have a spinner, which already contains some items. I'm trying to add a new item to it after getting it from another activity by setResult and onActivityResult:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null
{...}
else if(requestCode == GET_NEW_STUDENT_NAME)
{
String name = data.getStringExtra("name");
ArrayAdapter<String> adapter = (ArrayAdapter<String>)studentsSpinner.getAdapter();
adapter.add(name);
studentsSpinner.setAdapter(adapter);
}
}
However, every time the code runs, the activity closes. This exception is being shown:
03-29 19:20:30.925 26953-26953/com.example.user.privatelessons E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.user.privatelessons, PID: 26953 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { (has extras) }} to activity {com.example.user.privatelessons/com.example.user.privatelessons.AddLessonActivity}: java.lang.NullPointerException: println needs a message at android.app.ActivityThread.deliverResults(ActivityThread.java:4179) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4222) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1581) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) Caused by: java.lang.NullPointerException: println needs a message at android.util.Log.println_native(Native Method) at android.util.Log.e(Log.java:236) at com.example.user.privatelessons.AddLessonActivity.onActivityResult(AddLessonActivity.java:123) at android.app.Activity.dispatchActivityResult(Activity.java:7121) at android.app.ActivityThread.deliverResults(ActivityThread.java:4175) at android.app.ActivityThread.handleSendResult(ActivityThread.java:4222) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1581) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238)
[EDIT]: At start, I initialize the spinner with following code:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, db.GetStudentslist());;
spinner.setAdapter(adapter);
GetStudentslist() returns String[].
The following code, which just shows the name in the logcat (without adding it to spinner), works fine:
if(requestCode == GET_NEW_STUDENT_NAME && data != null)
{
String name = data.getStringExtra("name");
/* List<String> names = Arrays.asList(db.GetStudentslist());
names.add(name);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, names);;
studentsSpinner.setAdapter(adapter);*/
Log.e("Name", name);
}