2010-10-03 4 views
5

Tôi mới phát triển Android - sử dụng một cuốn sách có tên Sams Teach Yourself Android Application Development trong 24 giờ. Theo dõi nó cho đến nay nhưng đã bị mắc kẹt cố gắng sử dụng SharedPreferences.Cách sử dụng SharedPreferences

Trong thư mục src/com.androidbook.triviaquiz Tôi đã có một tập tin gọi là QuizActivity, trong đó tôi đã có những điều sau đây:

package com.androidbook.triviaquiz; 

import android.app.Activity; 
import android.os.Bundle; 
import android.content.SharedPreferences; 
public class QuizActivity extends Activity { 

    public static final String GAME_PREFERENCES = "GamePrefs"; 
    SharedPreferences settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE); 
    SharedPreferences.Editor prefEditor = settings.edit(); 
    prefEditor.putString("UserName", "JaneDoe"); 
    prefEditor.putInt("UserAge", 22); 
    prefEditor.commit(); 
} 

Đây là những gì cuốn sách nói với tôi để sử dụng, nhưng nó trả về lỗi tại các điểm sau: trong "." sau 2 câu lệnh prefEditor đầu tiên, trong ("Tên người dùng", "JaneDoe") dưới ("UserAge", 22); và trong "cam kết"

Tôi đã xem rất nhiều trang web để được trợ giúp nhưng tất cả dường như đều sử dụng cùng một mã. Tôi đang làm gì sai?

+0

Kiểm tra này http://www.gadgetsaint.com/go/xb023 – ASP

Trả lời

7

Thử đặt nó trong onCreate() của bạn. Ngoài ra, getDefaultSharedPreferences() dễ dàng hơn:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

    // Access the default SharedPreferences 
    SharedPreferences preferences = 
    PreferenceManager.getDefaultSharedPreferences(this); 
    // The SharedPreferences editor - must use commit() to submit changes 
    SharedPreferences.Editor editor = preferences.edit(); 

    // Edit the saved preferences 
    editor.putString("UserName", "JaneDoe"); 
    editor.putInt("UserAge", 22); 
    editor.commit(); 
} 
6

Sử dụng SharedPreferences chỉ sau khi hoạt động được tạo. Khởi tạo SharedPreferences trong onCreate().

public class QuizActivity extends Activity { 

public static final String GAME_PREFERENCES = "GamePrefs"; 
SharedPreferences settings; 
SharedPreferences.Editor prefEditor; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    settings = getSharedPreferences(GAME_PREFERENCES, MODE_PRIVATE); 
    prefEditor = settings.edit(); 

    prefEditor.putString("UserName", "JaneDoe"); 
    prefEditor.putInt("UserAge", 22); 
    prefEditor.commit(); 
    } 
} 

SharedPreferences là một trong các StorageOptions trong android được sử dụng để lưu trữ tùy chọn của người dùng.Đây có thể truy cập được trong ứng dụng.Ví dụ của SharedPreferences. http://www.codestacks.in/2013/03/sharedpreferences/

Ví dụ mã:

package com.example.test; 

import android.app.Activity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.widget.Toast; 

public class SharedPreferencesDemo extends Activity { 

SharedPreferences shared_preferences; 
SharedPreferences.Editor shared_preferences_editor; 
String test_string = ""; 

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

    shared_preferences = getSharedPreferences("shared_preferences_test", 
      MODE_PRIVATE); 
    test_string = shared_preferences.getString("test_key", "Default"); 

    Toast.makeText(getApplicationContext(), test_string, Toast.LENGTH_SHORT) 
      .show(); 

    shared_preferences_editor = shared_preferences.edit(); 

    shared_preferences_editor.putString("test_key", "Hello World"); 
    shared_preferences_editor.commit(); 

    test_string=shared_preferences.getString("test_key", "Default"); 

    Toast.makeText(getApplicationContext(), test_string, Toast.LENGTH_SHORT).show(); 
    } 
}