У меня есть приложение с несколькими действиями.В основном классе я открываю базу данных и создаю список содержимого следующим образом:
public class MyApplication extends Activity
{
private List<PhoneNumber> numberList;
public void onCreate(Bundle savedInstanceState)
{
...
numberList = new ArrayList<PhoneNumber>();
...
loadDatabase()
...
}
private void loadDatabase()
{
// File IO and parsing stuff
addNumber(thisNumber); // executes for each entry
}
public void addNumber(PhoneNumber thisNumber)
{
numberList.add(thisNumber);
}
}
Это работает нормально, и у меня есть ListView в основном действии, которое заполнено этими данными.Теперь перейдем к следующему шагу.Я пытаюсь запустить форму как новое действие, которое добавит запись в этот список.Упражнение начинается отлично, и я легко смог создать форму.Проблема заключается в доступе к списку для добавления в него.
public class AddNumber extends Activity
{
...
// This function is called from the done button
// <Button android:text="Done" android:onClick="formDone"/>
public void formDone(View v)
{
// findViewByIds here to get data from form.
// This is done correctly and I can see my data in memory
MyApplication access = new MyApplication();
PhoneNumber newNumber = new PhoneNumber();
// Fill newNumber object with data from form. Done correctly. Verified
access.addNumber(newNumber);
}
Последняя строка formDone()
выполняется правильно.Через отладку я могу перейти к классу Application, и он выполняет addNumber()
.Перед выполнением numberList.add(thisNumber);
я могу посмотреть содержимое памяти для объекта thisNumber
, который он пытается добавить в список, и эти данные верны.Попытка выполнить эту строку, хотя вылетает приложение в стандартном формате Android.(Загружает View.class с помощью «Source not found», за которым следует ZygoteInit $ MethodBlahBlah).
Так что я немного запутался, потому что похоже, что данные, подаваемые в addNumber()
, верны, и функция работаетсовершенно нормально, когда приложение запускается впервые путем построения списка из данных в базе данных.По сути, я думаю об этом правильно?Должна ли такая форма быть ее собственной деятельностью или есть лучший способ сделать это?Если это может быть его собственная деятельность, что я делаю не так?
Спасибо,
Nate