首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Hashmap的一行中插入两个字符串和可绘制的项目?

如何在Hashmap的一行中插入两个字符串和可绘制的项目?
EN

Stack Overflow用户
提问于 2015-02-06 15:15:51
回答 2查看 262关注 0票数 0

我这里有个问题。我想把一个字符串和一个可绘制的放在一个哈希图中。因为我是java的新手,我不熟悉java的语法和声明,我不知道如何找到解决我在互联网上的问题的方法,这就是我来这里的原因。基本上,我的代码如下所示:

代码语言:javascript
复制
private static String getAvModeText(String mode){
    String avMode = mContext.getString(R.string.AVM_stand);
    HashMap<String,String> mapAvM = new HashMap<String,String>();
    mapAvMode.put(TvFunctionID.AVM.AVM_STANDARD, mContext.getString(R.string.AVM_stand));
    mapAvMode.put(TvFunctionID.AVM.AVM_MOVIE, mContext.getString(R.string.AVM_mov));
    mapAvMode.put(TvFunctionID.AVM.AVM_MOVIE_THX,mContext.getString(R.string.AVM_movTHX));
    mapAvMode.put(TvFunctionID.AVMode.AVM_GAME, mContext.getString(R.string.AVM_game));
    mapAvMode.put(TvFunctionID.AVM.AVM_PC, mContext.getString(R.string.AVM_PC));
    mapAvMode.put(TvFunctionID.AVM.AVM_CUSTOM, mContext.getString(R.string.AVM_user));
    mapAvMode.put(TvFunctionID.AVM.AVM_DYNAMIC, mContext.getString(R.string.AVM_dyn));
    mapAvMode.put(TvFunctionID.AVM.AVM_DYNAMIC_FIXED, mContext.getString(R.string.AVM_dynFix));

    if(mapAvMode.containsKey(mode)) {
        avMode = mapAvMode.get(mode);
    }
    return avMode;

}

我想让我的代码看起来像这样:

代码语言:javascript
复制
mapAvMode.put(TvFunctionID.AVM.AVM_MOVIE_THX,mContext.getString(R.string.AVM_movTHX + " " + R.drawable.ic_launcher));

但如果我这样做,就会出现错误,错误出现在getString()中,即:

代码语言:javascript
复制
The method getString(int) in the type Context is not applicable for the arguments (String)

所以如果有人知道如何解决这个问题,我真的很感谢你的帮助。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-02-06 15:22:34

像这样创建类

代码语言:javascript
复制
public class Video {
  public final int title;
  public final int drawable;
  public Video(int title, int drawable) {
    this.title = title;
    this.drawable = drawable;
  }
}

然后创建具有<String, Video>泛型类型的映射

代码语言:javascript
复制
Map<String,Video> mapAvM = new HashMap<String,Video>();
票数 0
EN

Stack Overflow用户

发布于 2015-02-06 15:24:09

我知道你想做什么,不幸的是,Java语言中的HashMap不能以这种方式工作。基本上,第一个参数是键,第二个参数是值。所以你应该做这样的事情。

代码语言:javascript
复制
HashMap<String, Drawable> mapAvM = new HashMap<String,Drawable>();
mapAvMode.put(TvFunctionID.AVM.AVM_STANDARD, mContext.getDrawable(R.drawable.ic_launcher));

然后,如果您稍后需要访问可绘制文件,则可以调用:

代码语言:javascript
复制
  mapAvM.get(TvFunctionID.AVM.AVM_STANDARD); 

它会把你的抽屉还回去。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28360475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档