我想检测何时单击Preference中包含的ListView,以便可以启动意图来管理该选择。

我应该在布局XML文件中这样做:

<Preference android:title="About" android:key="myKey"></Preference>

以及我的java代码中的以下内容:
Preference myPref = (Preference) findPreference("myKey");
myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
             public boolean onPreferenceClick(Preference preference) {
                 //open browser or intent here
             }
         });

但是不建议使用 public Preference findPreference (CharSequence key) 方法。
  • 是否有未弃用的等效项?
  • 如果没有,我仍然使用它怎么办?
  • Fragments如何帮助我更好地完成任务?请点击此处Preferences without deprecated methods


  • 在这里,您可以检查我的 Activity 具有的XML布局结构以及应用程序的快照:

    XML:
    <?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <Preference
            android:key="about"
            android:title="@string/titleAbout"
            android:summary="@string/summaryAbout"
        />
    
        <Preference
            android:key="labelTaxonomy"
            android:title="@string/titleLabelTaxonomy"
            android:summary="@string/summaryLabelTaxonomy"
        />
    
    </PreferenceScreen>
    

    快照:

    单击关于(或访问标签分类法)Preference后,我想打开某种intent(也可以是视频或其他任何东西……名称令人误解)。

    最佳答案



    如果您在API Level 11+设备上使用PreferenceFragment,则可以在其上调用findPreference()。否则,由于您别无选择,请在findPreference()上调用PreferenceActivity



    会工作的。



    API级别11+引入了PreferenceFragment作为构造PreferenceActivity内容的另一种方法。欢迎使用它们,但是如果您仍在支持旧设备,则不能将PreferenceFragment用于这些设备。

    话虽如此:



    您不需要Java代码。采用:

        <PreferenceScreen
                android:title="@string/title_intent_preference"
                android:summary="@string/summary_intent_preference">
    
            <intent android:action="android.intent.action.VIEW"
                    android:data="http://www.android.com" />
    
        </PreferenceScreen>
    

    (如JavaDocs for PreferenceActivity 所示)

    这将在首选项UI中创建一个条目,单击该条目将使用指定的Intent启动 Activity 。

    关于java - 是否不推荐使用findPreference()方法? - 安卓,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11272839/

    10-12 03:39