gpt4 book ai didi

java - 将 LibGDX 与 Android 首选项一起使用

转载 作者:太空狗 更新时间:2023-10-29 12:49:13 24 4
gpt4 key购买 nike

我正在尝试将 Andrioid 的首选项系统与 LibGDX 的首选项系统结合使用。他们都使用 SharedPreferences 作为后端,所以我认为他们应该能够一起工作,但是当我尝试在 LibGDX 的首选项中加载数据时,我没有得到任何数据。

我的 Android preferences.xml 文件(我知道它很短,以后会有更多:P):

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<EditTextPreference
android:key="framerate"
android:title="Set Framerate"
android:enabled="true"
android:persistent="true"
android:defaultValue="25" />
</PreferenceScreen>

这是我的 PreferenceActivity:

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;

public class WallpaperSettings extends PreferenceActivity {

@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT < 11) {
addPreferencesFromResource(R.xml.preferences);
} else {
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}

}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static class MyPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}

当我从 com.badlogic.gdx.Game 的子类调用它时,我使用

Preferences pref = Gdx.app.getPreferences("preferences");
pref.getInteger("framerate");

pref 中的键数为 0。

有人知道如何解决这个问题吗?

最佳答案

感谢http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=6365#p32981我能够解决问题。

请注意,该代码适用于 Android 2.x 和 3.0+。

import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;

public class WallpaperSettings extends PreferenceActivity {

@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT < 11) {
addPreferencesFromResource(R.xml.preferences);
} else {
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}

}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static class MyPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
getPreferenceManager().setSharedPreferencesName("preferences");
getPreferenceManager().setSharedPreferencesMode(0);
}
}
}

关于java - 将 LibGDX 与 Android 首选项一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14301333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com