Mat*_*teo 42 java android deprecated android-preferences android-fragments
我想检测点击中Preference
包含的内容ListView
,以便我可以启动管理该选择的意图.
我会在我的布局XML
文件中这样做:
<Preference android:title="About" android:key="myKey"></Preference>
Run Code Online (Sandbox Code Playgroud)
以下java
代码在我的代码中:
Preference myPref = (Preference) findPreference("myKey");
myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
//open browser or intent here
}
});
Run Code Online (Sandbox Code Playgroud)
但该方法public Preference findPreference (CharSequence key)
已被弃用.
Fragments
帮助我以更好的方式完成我的任务?在这里嘲笑:没有弃用方法的偏好.在这里,您可以检查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>
Run Code Online (Sandbox Code Playgroud)
快照:
点击关于(或访问标签分类)后Preference
,我想打开intent
某种类型(也可能是视频或其他任何东西......这些名称具有误导性).
Com*_*are 60
有没有被弃用的等价物吗?
如果您PreferenceFragment
在API Level 11+设备上使用,则可以使用findPreference()
它.否则,请打电话findPreference()
给你PreferenceActivity
,因为你别无选择.
如果没有,如果我使用它怎么办?
它会工作.
Fragments如何帮助我以更好的方式完成任务?
引入API Level 11+ PreferenceFragment
作为构建a的内容的另一种方式PreferenceActivity
.欢迎您使用它们,但如果您仍在支持旧设备,则不能使用PreferenceFragment
这些设备.
话虽如此:
我想检测ListView中包含的Preference何时被单击,以便我可以启动管理该选择的意图.
您不需要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>
Run Code Online (Sandbox Code Playgroud)
(如JavaDocs中所示PreferenceActivity
)
这将在首选项UI中创建一个条目,单击该条目时,将启动具有指定的活动Intent
.
如果使用片段,则可以根据首选项片段使用方法“ findPreference()”。
public class CustomActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom);
CustomFragment customFragment = (CustomFragment) getFragmentManager().findFragmentById(R.id.custom_fragment);
EditTextPreference textPreference = (EditTextPreference) customFragment.findPreference("preference_key");
textPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
//open browser or intent here
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39553 次 |
最近记录: |