我这里有个问题。我想把一个字符串和一个可绘制的放在一个哈希图中。因为我是java的新手,我不熟悉java的语法和声明,我不知道如何找到解决我在互联网上的问题的方法,这就是我来这里的原因。基本上,我的代码如下所示:
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;}
我想让我的代码看起来像这样:
mapAvMode.put(TvFunctionID.AVM.AVM_MOVIE_THX,mContext.getString(R.string.AVM_movTHX + " " + R.drawable.ic_launcher));但如果我这样做,就会出现错误,错误出现在getString()中,即:
The method getString(int) in the type Context is not applicable for the arguments (String)所以如果有人知道如何解决这个问题,我真的很感谢你的帮助。谢谢。
发布于 2015-02-06 15:22:34
像这样创建类
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>泛型类型的映射
Map<String,Video> mapAvM = new HashMap<String,Video>();发布于 2015-02-06 15:24:09
我知道你想做什么,不幸的是,Java语言中的HashMap不能以这种方式工作。基本上,第一个参数是键,第二个参数是值。所以你应该做这样的事情。
HashMap<String, Drawable> mapAvM = new HashMap<String,Drawable>();
mapAvMode.put(TvFunctionID.AVM.AVM_STANDARD, mContext.getDrawable(R.drawable.ic_launcher));然后,如果您稍后需要访问可绘制文件,则可以调用:
mapAvM.get(TvFunctionID.AVM.AVM_STANDARD); 它会把你的抽屉还回去。
https://stackoverflow.com/questions/28360475
复制相似问题