我的第一项活动:
btnAddSt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Student st = new Student();
st.setStdId(edtStId.getText().toString());
st.setStdName(edtStName.getText().toString());
st.setStdDoB(edtStDoB.getText().toString());
st.setStdEmail(edtStEmail.getText().toString());
st.setStdPhone(edtStPhone.getText().toString());
st.setStdAddress(edtStAddress.getText().toString());
st.setStdBatch(edtStBatch.getText().toString());
students.add(st);
}
});
添加学生的功能:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student_manage);
Anhxa();
Intent intent = getIntent();
if (intent.getSerializableExtra("students")!=null) {
students = (ArrayList<Student>) intent.getSerializableExtra("students");
stAdt = new StudentAdapter(this, R.layout.student_line, students);
lstvSt.setAdapter(stAdt);
stAdt.notifyDataSetChanged();
}else {Toast.makeText(this,"Null",Toast.LENGTH_LONG).show();}
}
将学生添加到ArrayList后,我想通过btnResetSt传递它使用Intent。
这是第二项活动:
@GET("user/images")
Call<UserImage> getUserImage();
我使用Toast.makeText检查 intent.getSerializableExtra 的结果,它确实是空的,所以我无法在列表视图的第二个活动中显示我的列表。谁能说我错了?
答案 0 :(得分:0)
你得错了。您需要使用密钥StudentList
获得额外费用。
所以一定是:
students = (ArrayList<Student>) intent.getSerializableExtra("StudentList");
要防止出现同样的错误,请在目标Activity中使用静态密钥。像这样:
public class SecondActivity extends Activity {
public static final String STUDENT_LIST_EXTRA = "StudentList";
...
}
因此,您可以使用以下内容来增加额外内容:
intent.putExtra(SecondActivity.STUDENT_LIST_EXTRA, students);
并使用以下内容获得额外的收益:
students = (ArrayList<Student>) intent.getSerializableExtra(STUDENT_LIST_EXTRA);