2013-08-11 5 views
0

Im пытается загрузить 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(); 
} 

} 

Редактировать Updater Класс:

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(); 

} 
} 
+0

Где и как сделать вы создаете/устанавливаете значение, хранящееся в 'worldString'? Пока он не установлен, его не существует :-) – andy256

ответ

0

Пока вы не создавать предпочтения они не существуют, так что вы всегда будете видеть "hello".

Вот код, я использую, чтобы установить значение:

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

Обратите внимание, что это не с помощью имени файла, как вы, но концепция та же :-)

+0

ли строка должна быть принята в лизинг? – user2649191

+0

Я обновляюсь в другом классе, но когда я возвращаюсь к другому классу, то происходит то же самое. – user2649191

+0

Нет, это просто для моего кода. – andy256

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