2011-08-03 18 views
1

我有一个从ListView延伸的类。我为这个新类添加了一些额外的功能(拖放)。我的问题是有什么办法可以在偏好活动中使用这个扩展的ListView类。提供我自己的目录活动列表视图

我需要为传统首选项活动提供拖放功能。

回答

2

您是否可以从偏好活动中点击的项目打开任意活动?如果是这样,你需要做两件事。首先,PreferenceScreen项目添加到您的喜好XML文件:

<PreferenceScreen 
    android:key="CUSTOM_ACTIVITY_KEY" 
    android:title="Title" 
    android:summary="Summary" /> 

然后在你的设置活动的onCreate:

Preference pref = getPreferenceScreen().findPreference("CUSTOM_ACTIVITY_KEY"); 
final Intent intent = new Intent(this, CustomActivity.class); 
if (pref != null) 
{ 
    pref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
     public boolean onPreferenceClick(final Preference preference) 
     { 
      startActivity(intent); 

      return false; 
     } 
    }); 
} 
+0

不知道这是@jkv所要求的,但它确实帮了我:D – Maggie

+0

感谢乔希给你的回应。但我的要求有些不同。根据我的理解,android框架创建一个listview来显示提供给首选项活动的首选项(Preference activity extends list activity)。我的查询是;是否有可能提供我们自己的listview子类来替换偏好活动使用的Listview类。 – jkv

+0

对不起,我不相信有可能插入你自己的列表实现。看到我的其他答案为“最后的手段”。 – Josh

0

如果运行断PreferenceScreen项目的自定义活动是不够的,只有我能想到的其他选择是推出自己的首选项实现。其他人应该纠正我,如果我错了,但我认为可能拉动Preferences source并相应地修改。

+0

乔希,谢谢你的回应.. – jkv

+0

乔希,谢谢你的回应。我有一个想法,但不知道它是否会工作。用我的扩展列表视图和我的预置活动调用setContentView(mynewlayout)的onCreate创建一个新的布局文件。如果您检查PrefrenceActivity的onCreate,他们正在设置一个包含listview的布局。 – jkv

+0

如果您扩展了ListView,并将''放入您的自定义布局中,并且ID为'@android:id/list',那么您可以将其取消。 – Josh

0

我遇到另一个API中

来到
android.preference.PreferenceScreen.bind(ListView listView) 

绑定ListView通过getRootAdapter()包含在此PreferenceScreen偏好。 因此,在布局文件膨胀后,我们将能够将我们的自定义listview附加到该活动的preferenceScreen

相关问题