【发布时间】:2021-11-16 08:50:29
【问题描述】:
我开始使用 android studio,我正在尝试创建一个学生列表和他们各自的国籍,并能够添加/编辑。 这是我的班级对象 Student
package com.example.simpleparadox.studentList;
import java.io.Serializable;
public class City implements Serializable{
private String Sname;
private String nationality;
City(String Sname, String nationality){
this.Sname=name;
this.nationality=nationality;
}
public void setName(String Sname) {
this.Sname = Sname;
}
public void nationality(String nationality) {
this.nationality = nationality;
}
String getSname() {
return this.Sname;
}
String getNationality() {
return this.nationality;
}}
这是添加/编辑学生姓名和国籍的片段
public class AddStudentFragment extends DialogFragment {
private EditText sName;
private EditText nationlaity;
private OnFragmentInteractionListener listener;
public interface OnFragmentInteractionListener {
void onOkPressed(City newCity);
}
@Override
public void onAttach(Context context){
super.onAttach(context);
if(context instanceof OnFragmentInteractionListener){
listener=(OnFragmentInteractionListener) context;
}else{
throw new RuntimeException(context.toString()+"must implement OnFragmentInteractionListener");
}}
static AddStudentFragment newInstance(Student student){
Bundle args=new Bundle();
args.putSerializable("student",student);
AddStudentFragment fragment=new AddStudentFragment();
fragment.setArguments(args);
return fragment;
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {//
//Inflate the layout for this fragment
View view= LayoutInflater.from(getActivity()).inflate(R.layout.add_city_fragment_layout,null);
sName=view.findViewById(R.id.student_name_editText);
nationality=view.findViewById(R.id.nationality_editText);
AlertDialog.Builder builder=new AlertDialog.Builder(getContext());
return builder
.setView(view)
.setTitle("Add student")
.setNegativeButton("Cancel",null)
.setPositiveButton("OK",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialogInterface,int i){
String newName=sName.getText().toString();
String newNationality=nationality.getText().toString();
listener.onOkPressed(new Student(newName,newNationality));
}
}).create();
}}
我的目标是创建一个多功能按钮,如果我只需按下“添加”按钮就可以添加学生。但是如果我从学生列表视图中选择一个项目然后按下按钮,它应该编辑现有学生的姓名和国籍。我已经成功创建了第一个函数,但我被困在了编辑部分。具体来说,我不知道如何从 Bundle 中检索现有的学生对象。谁能帮帮我?
【问题讨论】:
标签: java android android-fragments android-fragmentactivity