Android偏好onclick事件

在我的preferences.xml中我有一个喜欢这样的元素:

<Preference android:title="About" /> 

我想分配onClick事件,所以如果用户点击它,我将能够打开新的Intent或浏览器。 我试图像button一样做,但这似乎不工作。

巴德尔

你需要为该项目设置android:key ,然后在你的代码中,你可以做…

假设您在XML中使用以下内容:

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

然后你可以在你的代码中执行以下操作:

 Preference myPref = (Preference) findPreference("myKey"); myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { //open browser or intent here return true; } }); 

启动一个网站:

 <PreferenceScreen android:title="website"> <intent android:action="android.intent.action.VIEW" android:data="http://www.example.com" /> </PreferenceScreen> 

开展具体活动:

 <PreferenceScreen android:title="something"> <intent android:action="android.intent.action.MAIN" android:targetPackage="com.example.foo" android:targetClass="com.example.foo.SomeActivity" /> </PreferenceScreen> 

你也可以使用“android:mimetype”来设置mimetype。

@Jason吉尔伯特的答案的后续行动

我在targetSdkVersion 25上 ,他的回答不起作用,我不得不用Preference标签包装intent标签。 例:

 <PreferenceScreen android:title="something"> <Preference title="Title"> <intent android:action="android.intent.action.MAIN" android:targetPackage="com.example.foo" android:targetClass="com.example.foo.SomeActivity" /> </Preference> </PreferenceScreen>