2013-08-03 4 views
0

Im пытается сделать создателя мира в виде списка, который сохраняет имя мира. Но предпочтения shaed приводят к сбою программы перед открытием. Почему это происходит? Это прекрасно, без общих предпочтений. Есть идеи? (Что в списке Щелчок незавершенный, не беспокойтесь об этом.) Ошибке, которые были наиболее заметными стала нулевой pointerexception на адаптере массива хранения == NULL, и пропущенных кадрыПрограмма сбоев общих настроек

package xxx.xxx.xxx; 

import android.app.ListActivity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.SharedPreferences.Editor; 
import android.graphics.drawable.Drawable; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.PopupWindow; 

public class WorldMenu extends ListActivity{ 
    SharedPreferences prefs; 
    String splitter; 
    String[] worldList; 
    PopupWindow worldNamer; 
    Drawable background; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setListAdapter(new ArrayAdapter<String>(WorldMenu.this,        
      android.R.layout.simple_list_item_1, worldList)); 
     prefs = getSharedPreferences("worldString", 0); 
     splitter = "Create World\\\\\\\\\\\\\\\\\\\\\\\\\\" + 
      prefs.getString("worldString", "No worlds found."); 
     worldList = splitter.split("\\\\\\\\\\\\\\\\\\\\\\\\\\"); 
    } 

    @Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     // TODO Auto-generated method stub 
     super.onListItemClick(l, v, position, id); 
     if(position == 0){ 
      worldNamer = new PopupWindow(this); 
      worldNamer.setBackgroundDrawable(null); 
     } 
    } 
} 
+1

Хорошо, что скажет стек, * точно *? В частности, нечеткие предложения «ошибки, которые были наиболее заметными» ... –

+0

Пожалуйста, используйте пробелы вместо вкладок, чтобы форматировать ваш код в будущем, кстати. –

+0

ОК, я сделаю это в следующий раз – user2649191

ответ

0

Вы добавили общие предпочтения и массив для представления списка в соответствии с адаптером, поэтому представление списка не может быть создан в первую очередь. Просто поместите переменные поверх адаптера.

0

В вашей деятельности попробуйте следовать Preferences INIT:

private SharedPreferences pref = null; 

... 

pref = PreferenceManager.getDefaultSharedPreferences(this); 

String worldString= prefs.getString("worldString", "No worlds found."); 

... 
+0

, который все еще не работает – user2649191

Смежные вопросы