为什么不能将ListPreference转换为Preference? (机器人)

时间:2014-05-01 20:55:02

标签: android android-fragments

鉴于此继承树

java.lang.Object
   ↳    android.preference.Preference
       ↳    android.preference.DialogPreference
           ↳    android.preference.ListPreference

当我尝试

myListPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

我收到了这个编译错误:

  

方法   setOnPreferenceClickListener(Preference.OnPreferenceClickListener)in   类型Preference不适用于参数(new   OnPreferenceClickListener(){})

当我尝试

myListPreference = getPreferenceManager().findPreference(DISPLAY_MESSAGE);
  

类型不匹配:无法从首选项转换为ListPreference

1 个答案:

答案 0 :(得分:1)

这两个问题无关。

问题1: 您可能缺少import语句。请改为new Preference.OnPreferenceClickListener()或添加import Preference.OnPreferenceClickListener

问题2: 你不能隐含地向上转换一个对象,你只能隐式地向下转换。您必须执行此操作myListPreference = (ListPreference)getPreferenceManager().findPreference(DISPLAY_MESSAGE);

供将来参考:

SubClass obj = getSuperClass(); // Not Valid, must cast
SuperClass obj = getSubClass(); // Valid