因此,我调试了程序,发现程序的一部分正在更新,而另一部分则没有。
我有一个方法:
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中没有对象。
我检查了对象引用只是为了确保它们指向的是相同的引用。
任何帮助将不胜感激。
编辑:整个类:
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);
}
}
参加Java类的来宾:-参见上文。
最佳答案
有用的提示:将List的类型设置为List<>
包中的java.util
接口而不是LinkedList<>
本身真的很流行。
无论如何,我很确定storeApplication
方法不会在Activity框架运行onCreate方法之前自动触发。也许调试器以不同的顺序停止(由于使用线程或smth),但是您应该记录一些调用。尝试找出来。