我想检测何时单击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/