我正在创建首选项菜单,并希望在单击特定首选项时启动浏览器(具有特定URL)。我知道这可以做到,但我似乎无法立即开始工作。
有什么想法吗?
由于
######解所以在我的大脑屁消失之后,这就是我所做的:
getPreferenceManager()
.findPreference("my_preference_key")
.setOnPreferenceClickListener(
new Preferences.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://some_url_here"));
startActivity(intent);
return true;
}
});
答案 0 :(得分:6)
getPreferenceManager()
.findPreference("my_preference_key")
.setOnPreferenceClickListener(
new Preferences.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://some_url_here"));
startActivity(intent);
return true;
}
});
enter code here
答案 1 :(得分:3)
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://some_url_here"));
startActivity(intent);
可以缩减为
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://some_url_here")));
答案 2 :(得分:1)
假设您已经有一个PreferenceFragment
或PreferenceActivity
,其中有一行加载了该屏幕:
addPreferencesFromResource(R.xml.my_prefs);
可以在不编写任何其他代码的情况下进行网站链接(以及更多)!以下是我无需编写单行Java即可实现的功能演示代码("链接"部分):
启动网站是最简单的。请注意,这些首选项都没有任何键,因此即使我愿意也无法从代码中访问它们。当然,缺少钥匙是完全可选的。
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
>
<!-- whatever you had before -->
<PreferenceCategory android:title="Links"><!-- optional header -->
<Preference
android:title="App info in settings"
>
<intent
android:action="android.settings.APPLICATION_DETAILS_SETTINGS"
android:data="package:my.app.package.name"
/>
</Preference>
<Preference
android:title="App details in Play Store"
>
<intent
android:action="android.intent.action.VIEW"
android:data="market://details?id=my.app.package.name"
/>
</Preference>
<Preference
android:title="Privacy Policy on our website"
>
<intent
android:action="android.intent.action.VIEW"
android:data="http://www.myapp.com/foo#bar"
/>
</Preference>
<Preference
android:title="Send feedback"
android:summary="via email">
<intent android:action="android.intent.action.VIEW"
android:data="mailto:your@email.address">
<extra android:name="android.intent.extra.TEXT"
android:value="Pre-filled email body." />
<extra android:name="android.intent.extra.SUBJECT"
android:value="Pre-filled email subject" />
</intent>
</Preference>
<Preference
android:title="@string/about_title"
android:summary="@string/app_name"
>
<!-- @strings are the same as used in AndroidManifest.xml;
about_title is from <activity> label,
app_name is from <application> label. -->
<intent
android:targetClass="my.app.AboutActivity"
android:targetPackage="my.app.package.name"
/>
</Preference>
</PreferenceCategory>
</PreferenceScreen>