0

世界の名前を保存するリストビューで世界の作成者を作成しようとしています。しかし、共有された設定により、アクティビティが開く前にプログラムがクラッシュします。なぜこうなった?共有設定がなくてもまったく問題ありません。何か案は?(リスト ビューのクリックは未完成です。心配しないでください。) 最も顕著なエラーは、配列アダプターでの null ポインター例外、ストレージ == 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);
        }
    }
}
4

2 に答える 2

0

あなたのアクティビティで、Preferences init に従ってみてください:

private SharedPreferences pref = null;

...

pref = PreferenceManager.getDefaultSharedPreferences(this);

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

...
于 2013-08-03T19:02:19.210 に答える