转自: https://my.oschina.net/artshell/blog/397132
在为应用开发设置界面中时,一般会使用PreferenceActivity或者PreferenceFragment类来实现.在写xml文件时,可以通过为Preference标签添加intent标签的方法来实现点击跳转,而且可以在intent标签中添加额外的参数.这样就不用再去编码实现跳转了.
具体实现参考如下:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<Preference
android:title="prefs_category_one"
android:summary="prefs_summary_category_one">
<!-- 这里android:targetPackage是应用程序的Context,而android:targetClass的路径在子包settings下 -->
<!-- 如果把 android:targetPackage="com.demo.artshell.uidemo.settings" 运行时找不到Activity -->
<intent
android:action="prefs_category_action_ONE"
android:targetPackage="com.demo.artshell.uidemo"
android:targetClass="com.demo.artshell.uidemo.settings.SupportOldVersionAndReusedActivityOrFragment$ReusedActivity">
<!-- 官网没有说明,但确实可以通过<extra>传附加信息 getIntent().getStringExtra("reused_key") -->
<extra
android:name="reused_key"
android:value="reused_fragment_two"/>
</intent>
</Preference>
<Preference
android:title="prefs_category_two"
android:summary="prefs_summary_category_two">
<intent
android:action="prefs_category_action_TWO"
android:targetPackage="com.demo.artshell.uidemo"
android:targetClass="com.demo.artshell.uidemo.settings.SupportOldVersionAndReusedActivityOrFragment$ReusedActivity"/>
</Preference>
</PreferenceScreen>