У меня есть простое приложение, которое просматривает комиксы и позволяет пользователю пометить некоторые из них как «Избранное», к которым можно получить доступ позже (это делает больше, чем это, но это все, что здесь уместно). Когда пользователь помечает комикс в качестве избранного, в общие настройки помещается строка с ключом формата = "# of Comic" Value = "title of Comic". SharedPreferences не содержит ничего, кроме пар ключ / значение, связанных с любимыми комиксами. Эта функциональность работает отлично. Проблема возникает с кнопкой меню, которую я реализовал, что я намеревался показать ListView, содержащий значения всех избранных, хранящихся в файле SharedPreferences. Вот код действий, выполняемых, когда пользователь нажимает кнопку «Избранное» во всплывающем меню
case R.id.favorites:
Log.i("Step 1", "Favorites");
favVector.clear(); //Clears string Vector that I want to use to hold the titles
Map<String, ?> allprefs = xkfav.getAll(); //gets map of all Shared Preferences
for (Map.Entry<String, ?> entry : allprefs.entrySet()) {
favVector.add((String) entry.getValue());
}
Log.i("Step 2", "Favorites");
setContentView(R.layout.favlist); //loads Layout with ListView (and nothing else)
Log.i("Step 3", "Favorites");
ListView menuList;
menuList = (ListView) findViewById(R.id.FavListView);
String[] items = new String[favVector.size()]; //creates array with size of Vector
favVector.copyInto(items); //Copies Vector into array
ArrayAdapter<String> adapt = new ArrayAdapter<String>(this, R.layout.fav_item, items);
menuList.setAdapter(adapt); //Puts array contents into list
Каждый раз, когда я запускаю это, я получаю Force Close. Я даже не вижу, как «Шаг 2» появляется в журнале. Игнорируя тот факт, что это, вероятно, не красивый или эффективный код, почему я получаю ошибку Force Close, когда пользователь нажимает эту кнопку?