第一个活动(classDetails.class)OnActivityResult返回谁= NULL错误
//传递addStudent按钮
Button addStudent = (Button) this.findViewById(R.id.addStudent2);
addStudent.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//on click, start activity for result
Intent addStudent = new Intent(ClassDetails.this, AddStudent.class);
addStudent.putExtra("position", classPosition);
startActivityForResult(addStudent,3);
}
});
}
次活动(addStudent.class): //保存按钮
Button save = (Button) findViewById(R.id.saveButton1);
save.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
//get student name
studentName = inputName.getText().toString();
//convert classID to int and check if entry is a number
try {
studentNum = Integer.parseInt(inputID.getText().toString());
} catch(NumberFormatException nfe) {
Context context = getApplicationContext();
CharSequence text = "Please Enter a Number";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
//use studentNum as string
studentN = Integer.toString(studentNum);
Intent returnIntent = new Intent();
returnIntent.putExtra("name", studentName);
returnIntent.putExtra("number", studentN);
setResult(RESULT_OK, returnIntent);
Log.d(TAG, "rusult OK set");
finish();
}
});
第一行动(classDetails.class):
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 3) {
if(resultCode == RESULT_OK){
Log.d(TAG, "classDetail result from addStudent OK");
String studentName = data.getExtras().getString("name");
String studentNum = data.getExtras().getString("number");
//convert studentNum to int
int studentN = Integer.parseInt(studentNum);
//add student to database
myData = DataStore.getInstance();
ArrayList<Student> studentList = myData.getClassArray().get(classPosition).getList();
Student newStudent = new Student();
newStudent.setInputName(studentName);
newStudent.setInputID(studentN);
studentList.add(newStudent);
updateStudentList(classPosition, newStudent.getInputName());
//student added toast
Context context = getApplicationContext();
CharSequence text = studentName + " Added";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
if (resultCode == RESULT_CANCELED) {
Context context = getApplicationContext();
CharSequence text = "No Student Added";
int duration = Toast.LENGTH_SHORT;
//Set listView
classView = (ListView) findViewById(R.id.list);
adapterClass = new ArrayAdapter<String>(this, R.layout.list_item, R.id.label, studentNames);
classView.setAdapter(adapterClass);
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
}//onActivityResult
的logcat:
03-04 00:35:19.109: E/AndroidRuntime(2883): FATAL EXCEPTION: main
03-04 00:35:19.109: E/AndroidRuntime(2883): Process: com.example.classorganizer, PID: 2883
03-04 00:35:19.109: E/AndroidRuntime(2883): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=3, result=-1, data=Intent { (has extras) }} to activity {com.example.classorganizer/com.example.classorganizer.ClassDetails}: java.lang.NullPointerException
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.app.ActivityThread.deliverResults(ActivityThread.java:3365)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3408)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.app.ActivityThread.access$1300(ActivityThread.java:135)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.os.Handler.dispatchMessage(Handler.java:102)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.os.Looper.loop(Looper.java:136)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.app.ActivityThread.main(ActivityThread.java:5017)
03-04 00:35:19.109: E/AndroidRuntime(2883): at java.lang.reflect.Method.invokeNative(Native Method)
03-04 00:35:19.109: E/AndroidRuntime(2883): at java.lang.reflect.Method.invoke(Method.java:515)
03-04 00:35:19.109: E/AndroidRuntime(2883): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-04 00:35:19.109: E/AndroidRuntime(2883): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-04 00:35:19.109: E/AndroidRuntime(2883): at dalvik.system.NativeStart.main(Native Method)
03-04 00:35:19.109: E/AndroidRuntime(2883): Caused by: java.lang.NullPointerException
03-04 00:35:19.109: E/AndroidRuntime(2883): at com.example.classorganizer.ClassDetails.onActivityResult(ClassDetails.java:133)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.app.Activity.dispatchActivityResult(Activity.java:5423)
03-04 00:35:19.109: E/AndroidRuntime(2883): at android.app.ActivityThread.deliverResults(ActivityThread.java:3361)
03-04 00:35:19.109: E/AndroidRuntime(2883): ... 11 more
什么是你'ClassDetails.java'行号133? –