1

以下のように、Android ライブ壁紙アプリに設定があります。(これらはチェックボックスです)。このリストに Facebook ページへのリンクを追加したいと考えています。ネットで Android PreferenceCategory を見てみると、「LinkPreference」や「ButtonPreference」のようなものは見当たりませんが、リンクやボタンは実際にはプリファレンスではないので、四角いペグをはめようとしているのかもしれません。丸い穴。これは可能ですか?

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
android:title="@string/livewallpaper_settings">
    <PreferenceCategory android:title="@string/livewallpaper_settings" >
        <CheckBoxPreference
            android:defaultValue="true"
            android:key="showred"
            android:summary="Display red."
            android:title="Display red" />
        <CheckBoxPreference
            android:defaultValue="true"
            android:key="showgreen"
            android:summary="Display green."
            android:title="Display green" />
    </PreferenceCategory>
</PreferenceScreen>

この質問は以前に尋ねられました: Android 設定アクティビティへのリンクを追加 - どのように? しかし、答えられません。

[編集] それでは、以下のコードを用意してください。Facebook に移動しますが、チェックボックスの設定のいずれかを最初にクリックした後でのみです。

livewallpaper_settings.xml で:

<PreferenceCategory android:title="@string/livewallpaper_settings" >  
<Preference  
    android:key="facebook"  
    android:summary="@string/facebook"  
    android:title="@string/facebook" />  
</PreferenceCategory> 

LiveWallpaperSettings.java:
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { Log.d("LiveWallpaperSettings.onSharedPreferenceChanged()", "key: " + key); 最終設定 mypref = (設定) findPreference("facebook"); mypref.setOnPreferenceClickListener(新しい OnPreferenceClickListener() {

    @Override
    public boolean onPreferenceClick(Preference arg0) {
    Log.d("LiveWallpaperSettings", "mypref: " + mypref.getKey());
    if (mypref.getKey().equals("facebook")) {
    Log.d("LiveWallpaperSettings", "LINK TO FACEBOOK");
    openWebURL("http://www.facebook.com");
    return false;
    }
    return false;
} });
return;
}

public void openWebURL( String inURL ) {
    Log.d("openWebURL", inURL);
    Intent browse = new Intent( Intent.ACTION_VIEW , Uri.parse( inURL ) );

    startActivity( browse );
}
4

1 に答える 1