efter många om och men så har jag något konkret att visa vad jag gjort.....
detta har jag lagt till i main klassen
private void editReader(){
int readerID = readInt("What reader ID do you want to edit: ");
int index = library.indexOf(readerID);
String name = readString("Name: ");
int birthYear = readInt("Birth Year: ");
Address address = readAddress();
PhoneNo phoneNo = readPhoneNo();
Email email = readEmail();
Reader theEditedReader = new Reader(name, readerID, birthYear, address,
phoneNo, email);
library.editReader(index, theEditedReader);
System.out.println("Reader " + name + " added");
}
detta har jag lagt till i
library klassen
public void editReader(int index, Reader theEditedReader){
readerCollection.editReader(index, theEditedReader);
}
public int indexOf(int readerID){
return readerCollection.indexOf(readerID);
}
detta i readerCollection klassen
public int indexOf(int readerID){
Reader r;
for(int index = 0; index < readers.size(); index++){
r = readers.get(index);
if(readerID == r.getReaderID());
return index;
}
return -1;
}
public void editReader(int index, Reader theEditedReader){
readers.set(index, theEditedReader);
}
Jag kan utföra en ändring när jag kör metoden i main klassen.
Allt funkar fint. MEN..... jag kan bara ändra index 0 i arrayListan.
den bryr sig inte om jag skriver ID numret på en reader som finns längre ned i listan, utan den ändrar bara första personen i listan ändå.