gpt4 book ai didi

java - 使用HashMap 时需要使用什么声明?

转载 作者:行者123 更新时间:2023-12-01 11:56:18 24 4
gpt4 key购买 nike

目前我正在执行一项涉及 HashMap 的任务。我现在要做的就是在 HashMap 中插入 3 个变量。我成功做到了,但在语法或声明方面存在错误(我不知道是哪一个)。有人可以帮助我检测我的语法/声明有什么问题并提出解决方案吗?下面是我的代码:

public static void showAVMode(Context context, String AVMode) {
mContext = context;
spotText = getAvModeText(AVMode);
spotType= "";
call_Spot=3000;
if(mContext != null) {
spotType=mContext.getString(R.string.AVM_name);
currentSpot=5;
show();
} else {
TvLog.d(TAG, "context is null");
}
}

………………

private static String getAvModeText(String mode){
String avMode = mContext.getString(R.string.AVM_stand);

HashMap<String,Drawable> AvModeIconTHX = new HashMap<String,Drawable>();
AvModeIconTHX.put(mContext.getString(R.string.AVM_movTHX), mContext.getDrawable(R.drawable.set_thx));

HashMap<String,Drawable> AvModeIconES = new HashMap<String,Drawable>();
AvModeIconES.put(mContext.getString(R.string.AVM_stand), mContext.getDrawable(R.drawable.set_es));

HashMap<String,Drawable> AvModeMovie = new HashMap<String,Drawable>();
AvModeMovie.put(mContext.getString(R.string.AVM_mov), null);
HashMap<String,Drawable> AvModeGame = new HashMap<String,Drawable>();
AvModeGame.put(mContext.getString(R.string.AVM_game), null);
HashMap<String,Drawable> AvModePC = new HashMap<String,Drawable>();
AvModePC.put(mContext.getString(R.string.AVM_PC), null);
HashMap<String,Drawable> AvModeUser = new HashMap<String,Drawable>();
AvModeUser.put(mContext.getString(R.string.AVM_user), null);
HashMap<String,Drawable> AvModeDyn = new HashMap<String,Drawable>();
AvModeDyn.put(mContext.getString(R.string.AVM_dyn), null);
HashMap<String,Drawable> AvModeDynFix = new HashMap<String,Drawable>();
AvModeDynFix.put(mContext.getString(R.string.AVM_dynFix), null);

HashMap<String,HashMap<String,Drawable>> mapAvMode = new HashMap<String,HashMap<String,Drawable>>();
mapAvMode.put(TvFunctionID.AVMode.AVMODE_STANDARD, AvModeIconES);
mapAvMode.put(TvFunctionID.AVMode.AVMODE_MOVIE, AvModeMovie);
mapAvMode.put(TvFunctionID.AVMode.AVMODE_MOVIE_THX, AvModeIconTHX);
mapAvMode.put(TvFunctionID.AVMode.AVMODE_GAME, AvModeGame);
mapAvMode.put(TvFunctionID.AVMode.AVMODE_PC, AvModePC);
mapAvMode.put(TvFunctionID.AVMode.AVMODE_CUSTOM, AvModeUser);
mapAvMode.put(TvFunctionID.AVMode.AVMODE_DYNAMIC, AvModeDyn);
mapAvMode.put(TvFunctionID.AVMode.AVMODE_DYNAMIC_FIXED, AvModeDynFix);

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

}

错误代码为 mapAvMode.get(mode);上面写着Type mismatch: cannot convert from HashMap<String,Drawable> to String 。有快速修复程序,但它没有解决错误。有人可以帮我弄这个吗?我认为我的代码可以比这短得多。任何建议将不胜感激。

最佳答案

您的 avMode 变量是类型 String而mapAvMode返回的对象是HashMap<String,Drawable> 。在 HashMap 中,第一个参数是键(这里是 String),第二个参数是值(这里是 Drawable)。如果你想从这个 HashMap 中获取 String 值,你应该这样做:avMode = mapAvMode.get(mode).get(yourParam);

更新:抱歉,我提供了错误的信息。所以我正在纠正我的答案。 mapAvMode.get(mode)将返回 HashMap<String, Drawable>如果你这样写:

mapAvMode.get(mode).get(yourParam); .

它将返回一个 Drawable。所以你的 avMode 变量必须是 HashMap 并且这一行可以工作:

avMode = mapAvMode.get(mode)

或者它必须是一个 Drawable 并且这一行可以工作:

avMode = mapAvMode.get(mode).get(yourParam);

关于java - 使用HashMap <String,Drawable>时需要使用什么声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423843/

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