gpt4 book ai didi

java - 为什么我不能在没有运行时错误的情况下使用 Resources.getSystem()?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:17:48 26 4
gpt4 key购买 nike

public class BobDatabase extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "bob.db";
private static final int DATABASE_VERSION = 1;
public static final String DEFAULT_PROFILE = "default_profile";

public BobDatabase(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase database)
{
createProfileTable(database);
createTimeTable(database);
createEventTable(database);
createLocationTable(database);
}

/**
* Creates a table for Profile objects, executes the string create_profile_table_sql
* contained within strings.xml
* @param database
*/
public void createProfileTable(SQLiteDatabase database)
{
database.execSQL(Resources.getSystem().getString(R.string.create_profile_table_sql));
}}

我收到这个错误

01-14 12:20:57.591: E/AndroidRuntime(1825): Caused by: android.content.res.Resources$NotFoundException: 字符串资源 ID #0x7f040003

导致错误的代码是 createProfileTable 中的单行代码,Resources.getSystem().getString(R.string.create_profile_table_sql) 如果我使用类变量来保存上下文并执行context.getString(R.string.create_profile_table_sql) 我没有收到任何错误,但我不想这样做,因为我想避免内存泄漏,据我所知,这应该可行。知道发生了什么吗?

最佳答案

根据 Android 文档,Resources.getSystem() 仅提供系统级资源,不提供应用程序级资源(如 strings.xml 文件中的资源)。

http://developer.android.com/reference/android/content/res/Resources.html#getSystem()

如果您真的想以这种方式检索字符串,请尝试使用应用程序的上下文,或者在您的问题的评论中采纳我的建议。

关于java - 为什么我不能在没有运行时错误的情况下使用 Resources.getSystem()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864015/

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