Java 如何在Hashmap的一行中插入字符串和可绘制的两项?
我这里有个问题。我想在一个hashmap中放入一个字符串和一个drawable。因为我对java非常陌生,我不熟悉java语法和声明,也不知道如何找到解决internet问题的方法,这就是我来这里的原因。基本上,我的代码如下所示:Java 如何在Hashmap的一行中插入字符串和可绘制的两项?,java,android,string,hashmap,android-drawable,Java,Android,String,Hashmap,Android Drawable,我这里有个问题。我想在一个hashmap中放入一个字符串和一个drawable。因为我对java非常陌生,我不熟悉java语法和声明,也不知道如何找到解决internet问题的方法,这就是我来这里的原因。基本上,我的代码如下所示: private static String getAvModeText(String mode){ String avMode = mContext.getString(R.string.AVM_stand); HashMap<String,St
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;
但是如果我这样做的话,会有一个错误,错误在getString()上,它是:
The method getString(int) in the type Context is not applicable for the arguments (String)
所以如果有人知道如何解决这个问题,我真的很感谢你的帮助。谢谢。创建类似
public class Video {
public final int title;
public final int drawable;
public Video(int title, int drawable) {
this.title = title;
this.drawable = drawable;
}
}
然后使用
泛型类型创建映射
Map<String,Video> mapAvM = new HashMap<String,Video>();
Map mapAvM=new HashMap();
我了解您想要做什么,不幸的是,Java中的HashMap不能以这种方式工作。基本上,第一个参数是键,第二个是值。所以你应该这样做
HashMap<String, Drawable> mapAvM = new HashMap<String,Drawable>();
mapAvMode.put(TvFunctionID.AVM.AVM_STANDARD, mContext.getDrawable(R.drawable.ic_launcher));
它将返回您的可绘制内容。什么是
mContext
此处,显示此声明mContext
声明为private static Context mContext=null代码>。这段代码实际上很长。所以我只取了我想修改的部分。为什么是视频?我可以把Drawable
改为吗?您说过“如何插入字符串和可绘制的两项”,所以我创建了包含两项的类。如果您不需要字符串,Map=new HashMap()代码>并通过mapAvM.put(yourKey,mContext.getDrawable(drawableId))
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);