I am trying to send an ID as an int and get it from an intent in another activity but it returns zero.
This is the intent in the first activity:
public class Main_page extends AppCompatActivity {
    ListView PatientList;
    Button BTaddPatient;
    DBpatients db;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_page);
        PatientList = findViewById(R.id.PateintList);
        BTaddPatient = findViewById(R.id.ADDpateint);
        db = new DBpatients(this);
        BTaddPatient.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(Main_page.this, Add_patient_Activity.class);
                startActivity(intent);
            }
        });
        PatientList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Patient selected_patient = (Patient) parent.getItemAtPosition(position);
                Intent intent = new Intent(getApplicationContext(), Update_patient.class);
                intent.putExtra("ID", selected_patient.getId());
                intent.putExtra("name", selected_patient.getName());
                intent.putExtra("diagnose", selected_patient.getDiagnose());
                startActivity(intent);
            }
        });
    }
    @Override
    protected void onResume() {
        super.onResume();
        ArrayList<Patient> patients = db.getAllPatients();
        PatientAdapter patientAdapter = new PatientAdapter(this, R.layout.item_pateint, patients);
        PatientList.setAdapter(patientAdapter);
    }
}
And trying to get the ID in the other activity:
public class Update_patient extends AppCompatActivity {
DBpatients db;
EditText editName, editDiagnose;
Button UpdateBTN;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_update_patient);
    final int id =  getIntent().getExtras().getInt("ID");
    db = new DBpatients(this);
    editName = findViewById(R.id.EDname);
    editDiagnose = findViewById(R.id.EDdiagnose);
    UpdateBTN = findViewById(R.id.BTupdate);
    Patient patient = db.getPatientByID2(id);
    editDiagnose.setText(patient.getDiagnose());
    editName.setText(patient.getName());
    UpdateBTN.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = editName.getText().toString();
            String diagnose = editDiagnose.getText().toString();
            Patient newPatient = new Patient( id, name, diagnose);
            db.UpdatePatient(newPatient);
            Toast.makeText(Update_patient.this, "successfuly UPDATED", Toast.LENGTH_SHORT).show();
        }
    });
}
This is Patient class :
public class Patient {
    private String name;
    private int id;
    private String diagnose;
    public Patient(String name, String diagnose) {
        this.name = name;
        this.diagnose = diagnose;
    }
    public Patient(int id, String name, String diagnose) {
        this.name = name;
        this.diagnose = diagnose;
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getDiagnose() {
        return diagnose;
    }
    public void setDiagnose(String diagnose) {
        this.diagnose = diagnose;
    }
}
The app crashes, and, by using the debugger, it shows that ID = 0 when receiving it.
Please help.
 
     
    