2012-12-02 28 views
9

Tôi có một Activity Preferences trong mã của mình. Tôi muốn hiển thị một bánh mì nướng khi bao giờ người dùng thay đổi nút radio trong một Listpreferences. Tôi đã sử dụng mã này nhưng nó không hoạt động. :(vấn đề của tôionPreferenceChange method không được gọi khi Listpreferences thay đổi

public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
addPreferencesFromResource(R.xml.prefs); 
} 
public void onSharedPreferenceChanged(SharedPreferences arg0, String key) { 

ListPreference listPreference = (ListPreference) findPreference(key); 
listPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { 

    @Override 
    public boolean onPreferenceChange(Preference preference, Object newValue) { 
     // TODO Auto-generated method stub 
     Toast.makeText(PrefsActivity.this, "second", Toast.LENGTH_LONG).show(); 
     return false; 
    } 
}); 
} 
} 

là những gì

+4

Bạn nên chỉnh sửa thông tin mới này vào câu hỏi hiện tại của bạn: [Hiển thị một Bánh mì nướng khi người dùng thay đổi cài đặt trong hoạt động tùy chọn] (http://stackoverflow.com/q/13665409/1267661), thay vì tạo câu hỏi mới. Vui lòng xem [FAQ] về các cách có thể chấp nhận để thu hút sự chú ý của bạn hơn. – Sam

+0

@Reza_rg: bạn có try'Log.v ("ListPreference", "onPreferenceChange"); 'để xem onPreferenceChange được gọi hay không trong logcat? –

+0

@imrankhan Tôi đã thử nó ngay bây giờ, và có vẻ như trênPreferenceChange không được gọi. Tôi nên làm gì bây giờ? –

Trả lời

16

Thay đổi mã onCreate của bạn để:?.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.prefs); 

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    prefs.registerOnSharedPreferenceChangeListener(this); 
} 

Bạn chưa thêm registerOnSharedPreferenceChangeListener để PrefsActivity Hoạt động

+0

bạn đã thử chưa? –

+0

Có! Đó là sai lầm của tôi, Cảm ơn bạn. :) –

+0

bây giờ, tôi có một vấn đề khác. :(khi tôi nhấp vào một trong các nút radio trong listpreferences, nó bánh mì nướng những gì tôi muốn, nhưng nó liều không cập nhật giá trị trong listpreferences –

Các vấn đề liên quan