0

SharedPreferences を読み込もうとしていますが、共有設定が見つからず、別のクラスから更新しようとしていますが、うまくいきません。リストビューにもlstアダプターを使用しています。次のコードのアイデアはありますか? リスト ビューのバックアップの hello 文字列を取得しています。

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class WorldMenu extends  ListActivity{
SharedPreferences prefs = null;
String splitter;
String[] worldList;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    context = getBaseContext();
    prefs = context.getSharedPreferences("worldString", 1);
    splitter =  "Create World," + prefs.getString("worldString", "hello");
    worldList = splitter.split(",");
    setListAdapter(new ArrayAdapter<String>(WorldMenu.this,
 android.R.layout.simple_list_item_1, worldList));
}

@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){
        Intent openWorldNamer = new Intent("this works no need to check");
        startActivity(openWorldNamer);
    }

}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    finish();
}

}

アップデータ クラスの編集:

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class WorldCreator extends Activity{
EditText worldNameEditor;
Button saver;
SharedPreferences prefs;
OnSharedPreferenceChangeListener listener;
String updater2;
Editor editor;
String updater;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_worldcreator);
    prefs = PreferenceManager.getDefaultSharedPreferences(this);
    worldNameEditor = (EditText) findViewById(R.id.hello);
    saver = (Button) findViewById(R.id.button1);
    updater2 = worldNameEditor.getText().toString() + ",";

saver.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        updater = updater2;
        editor = prefs.edit();
        editor.putString("worldString", updater);
        editor.commit();
        Intent openListWorld = new
Intent("the list activity");
        startActivity(openListWorld);

    }});

    }
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();





    }





@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

}
 }
4

1 に答える 1

0

設定を作成するまでそれらは存在しないため、常に が表示されます"hello"

値を設定するために使用するコードを次に示します。

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putBoolean("LicenseAccepted", true);
editor.commit();

これはあなたのように名前付きファイルを使用していないことに注意してくださいが、概念は同じです:-)

于 2013-08-11T23:22:59.713 に答える