标签: resource-id

为什么字符串标识符用于访问资源数据?

我正在开发一个项目来替换已弃用的资源管理系统(Mac和Windows上的QuickTime资源管理器),并且我一直在使用Qt使用的当前模型,其中使用字符串键从资源文件中检索数据.

例如,我的资源文件中可能有一个图像,"HungryBear.png"存储在我的资源文件中.Qt和我提出的系统将以伪代码描述的方式得到它:

image = GetImageResource("BearPlugin/Images/HungryBear.png");
Run Code Online (Sandbox Code Playgroud)

在那一点上很清楚那个图像是什么,以及它可以在哪里找到.

在我们当前的系统中,我们使用数字.数字的问题在于,必须找到资源文件(可能有很多)来找出它是什么图像(或资源).

一个例子:

oldActiveResourceFile = GetActiveResourceFile(); // think of a stack of resource files

SetActiveResourceFile("BearPlugin");

image = GetImageResource(1);

// Perhaps other resources are retrieved and other functions called
// Possibly introduce problems by calling functions that change "Active Resource File"

SetActiveResourceFile(oldActiveResourceFile);
Run Code Online (Sandbox Code Playgroud)

第一种方法是我在访问资源文件数据的当前系统中看到的.我被告知C#和Java使用它,我知道它们用于字符串键值对等.

然而,我的同行已经表示担心改变当前使用这些数字ID的系统,我正在提议的字符串id.似乎有很多好处,它们解决了我们在当前系统中遇到的许多问题.我希望得到支持文档,建议的系统更好,更可取,所以我的问题是:

您是否知道任何研究或讨论证明在代码中使用字符串标识符(分层)比使用任意数字更好?

笔记

  1. 我打算使用zip文件(可能是未压缩的)来包含数据文件.
  2. 我们有一个应用程序插件环境.应用程序和每个插件都可以拥有自己的资源文件.插件可能能够访问应用程序资源文件中的资源数据.
  3. 以下是一些已经考虑过的要求,我相信这些要求:

    • 软件开发人员应能够唯一地识别资源.
    • 软件开发人员应能够使用有意义的名称来命名资源.
    • 资源应与需要它们的应用程序部分相关联.
    • 本地化人员应能够轻松识别已更改的资源文件.
    • 本地化人员应能够使用自己的工具来修改资源文件.
    • 如果客户使用的功能依赖于已弃用的呼叫,则应通知客户.

c# java resources resource-id

7
推荐指数
1
解决办法
253
查看次数

REST数字或字符串资源标识符?

我正在做一些研究来帮助我开发REST API,这是我在任何地方都没有深入讨论的一个主题.

如果我在系统中有用户,使用数字标识符识别用户是否更好

/用户/ 1

或者使用字符串标识符?

/用户/ RSmith

我可以看到每种方法的假设潜在利弊,字符串标识符更易于人类阅读,更不易被发现(不能增加以找到有效用户),并且不需要在数据库中存储另一个数字ID(我不会想通过API公开数据库ID).数字标识符没有固有的含义,因此可以保证是不可变的,而使用字符串id,用户可能希望重命名资源,从而更改资源URI.

这里是否有REST最佳实践,或者最佳方法是否因系统而异?如果是后者,是否还有与每种方法相关的额外利弊?

rest identifier resource-id

6
推荐指数
1
解决办法
2079
查看次数

Android:使用图像路径设置布局背景

我想把图像作为布局的背景.

首先,我正在创建一个drawable: Drawable d = Drawable.createFromPath("pathToImageFile");

API级别8 layout.setBackground( d )不支持layout.setBackgroundDrawable( d ) 不推荐使用 ,所以我需要使用

layout.setBackgroundResource(resourceID)

如何获取动态生成的drawable的resourceID.我正在使用此方法:

Drawable d = Drawable.createFromPath("pathToImageFile");

创造一个可绘制的.

android background drawable resource-id

6
推荐指数
1
解决办法
4898
查看次数

Android:了解R.java中的resource-id

有没有人知道关于resource-id和R.java的内部结构,或者至少可以引用我来阅读更多关于它的内容?

resource-id的含义是什么?他们是apk中的某种地址吗?他们在编译的apk中保存在哪里?

我尝试了一些关于它的信息,但我得到的大部分内容都是导入它的问题以及它的作用和一般情况.

为什么我问这些问题:我最近尝试动态加载一个使用资源的APK 这里,看着这个我相信它甚至是不可能的.我想了解原因.

java android r.java-file resource-id

5
推荐指数
2
解决办法
911
查看次数

如何从动态创建(在Java中)layer-list/LayerDrawable中获取Android资源ID?

这个问题/答案帖子中的"解决方案#2(动态)":

在android中覆盖两个图像以设置imageview

非常接近我想做的事情,即动态创建图层列表(对于状态栏通知图标,我想在图层中构建我的图标),但通知API中的图标分配需要资源ID(我想从服务中调用).

我无法弄清楚如何构建动态构建图层列表而不构建数百个图层列表.xml文件(对于我希望能够显示的各种图标组合).Daniel的"解决方案#1"非常适用于静态.xml文件,但我正在寻找一种更优雅,更动态的解决方案.

在上面的帖子中,代码片段:

  Resources r = getResources();

  Drawable[] layers = new Drawable[2]; 

  layers[0] = r.getDrawable(R.drawable.t);

  layers[1] = r.getDrawable(R.drawable.tt);

  LayerDrawable layerDrawable = new LayerDrawable(layers);
Run Code Online (Sandbox Code Playgroud)

似乎是我想要的,但我不知道或不了解如何将新的layerDrawable"分配"到我的通知图标(它获取资源ID).

感谢所有... stackoverflow是一个很好的资源!

android layer drawable resource-id

4
推荐指数
1
解决办法
2万
查看次数

ArrrayAdapter要求resourceID是文本视图

我的这个项目的目标是用用户输入动态更新微调器.不幸的是,我正在失去这场战斗.Logcat不断向我抛出资源ID错误,但是,我不明白为什么它只是按下按钮,不会在onCreate之后抛出,如果那就是问题所在?

Eclipse(通过ctrl + space)告诉我指定包含TextView的布局的资源ID.我甚至不理解为什么我需要一个textview,如果我只是处理一个数组和一个微调器.AndroidDevelopment网站也说同样的话.我只是感到困惑.所以,我的问题是,这个错误意味着什么,我做错了什么?

我相信这是有问题的一行:

list = new ArrayAdapter<String>(this,R.layout.settings,items);
Run Code Online (Sandbox Code Playgroud)

这是.java

    package com.example.thepicker;

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;

public class Settings extends Activity implements OnClickListener{


    EditText getit;
    ImageButton giveit;
    Spinner thelist;
    ArrayList<String> items;
    ArrayAdapter<String> list;
    String transit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings);

        items = new ArrayList<String>();
        list = new ArrayAdapter<String>(this,R.layout.settings,items);
        getit = (EditText) findViewById(R.id.getit);
        giveit = (ImageButton) findViewById(R.id.giveit);
        thelist = (Spinner) findViewById(R.id.thelist);


        thelist.setAdapter(list);
        giveit.setOnClickListener(this);
    } …
Run Code Online (Sandbox Code Playgroud)

arrays android textview resource-id

2
推荐指数
1
解决办法
5279
查看次数

WM_CTLCOLORSTATIC lParam,C++ WINAPI

我正在尝试包含到我的对话窗口过程中,当收到msg WM_CTLCOLORSTATIC时,我得到正在发送消息的Control的ID.

case WM_CTLCOLORSTATIC: 
        UINT ID = GetWindowLong((HWND)lParam, GWL_ID);
Run Code Online (Sandbox Code Playgroud)

问题是......当我尝试输入WM_CTLCOLORSTATIC的lParam时,它返回值65535,这是不正确的; 我甚至没有最大UINT ID为65535的资源项.

你能告诉我为什么会这样吗?

c++ winapi getwindowlong resource-id

1
推荐指数
1
解决办法
674
查看次数