Итак, я отлаживал свою программу и обнаружил, что часть моей программы обновляется, а другая нет.Связанный список не обновляет значения
У меня есть метод:
public void storeApplication(String name, String item){
Application app = new Application(name, item);
peopleAttending.add(app);
}
отладчик сообщает, что объект содержится в LinkedList (peopleAttending).
В другом методе:
public void populateListView() {
int noOfPeopleAttending = peopleAttending.size();
String noPeopleAttending = String.valueOf(noOfPeopleAttending);
Toast.makeText(GuestsAttending.this, noPeopleAttending, Toast.LENGTH_SHORT).show();
}
Этот метод может быть вызван после предыдущего и утверждает, что не является объектом в пределах LinkedList.
Я проверил ссылки на объекты, чтобы убедиться, что они указывают на одну и ту же ссылку, и они есть.
Любая помощь была бы принята с благодарностью.
EDIT: Весь класс:
public class GuestsAttending extends Activity {
private LinkedList<Application> peopleAttending = new LinkedList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_guests_attending);
populateListView();
}
public void storeApplication(String name, String item){
Application app = new Application(name, item);
peopleAttending.add(app);
}
public void populateListView() {
// GuestsAdapter adapter = new GuestsAdapter(this, peopleAttending);
// ListView listView = (ListView) findViewById(R.id.listView);
// listView.setAdapter(adapter);
peopleAttending.size();
int noOfPeopleAttending = peopleAttending.size();
String noPeopleAttending = String.valueOf(noOfPeopleAttending);
Toast.makeText(GuestsAttending.this, noPeopleAttending, Toast.LENGTH_SHORT).show();
}
Второе редактирование:
Java Способ бронирования Экран:
public void saveBookingInfo(View view) {
GuestsAttending sendApplication = new GuestsAttending();
EditText applicantNameText = (EditText) findViewById(R.id.applicantNameTextField);
EditText itemToBurnText = (EditText) findViewById(R.id.itemToBurnTextField);
String appName = applicantNameText.getText().toString();
String appItemToBurn = itemToBurnText.getText().toString();
if (appItemToBurn.isEmpty() || appName.isEmpty()) {
Toast.makeText(BookingScreen.this, "Please fill in all fields.", Toast.LENGTH_SHORT).show();
}
else {
sendApplication.storeApplication(appName, appItemToBurn);
}
}
GuestsAttending Java Класс: - смотри выше.
Поскольку у вас есть отладчик, вы можете прикрепить точку останова, чтобы остановить выполнение каждый раз, когда происходит доступ к людям, доступным для доступа, и, следовательно, найти, если какая-либо другая операция опустошает список? Вы на 100% уверены, что люди должны быть одним и тем же объектом в обоих случаях? –
100% - Я простаивал большую часть дня, и пока не повезло. :/ –
Как насчет 'peopleAttending.clear()' где-то между двумя частями кода? –