我在非活动类中声明了一个哈希映射,如下所示:
public class Wifi {
HashMap<String, String> AccessPoints = new HashMap<String, String>();
AccessPoints.put("AP1", "first_ap");
public ArrayList<Integer> scanWifi(Context context) {
// code here
}
}
然后我尝试将数据添加到哈希映射中,但是我得到了一个&#34;无法解析符号&#34; Android Studio中的错误。
当我将AccessPoints.put("AP1", "first_ap");
放在班级的某个功能中时,它似乎可以正常工作。
答案 0 :(得分:9)
AccessPoints.put("AP1", "first_ap");
调用方法应该在以下块中完成:
答案 1 :(得分:1)
你应该在Java中使用一个小的起始字母变量。它可能会认为AccessPoint是一个新类,尽管它只是声明变量的名称。 尝试更改名称中的第一个字母,这可能会有所帮助。
HashMap<String, String> accessPoints = new HashMap<String, String>();
accessPoints.put("api","first");
如果没有帮助,可能是范围问题,因此请在问题中添加更多上下文。
答案 2 :(得分:0)
这张地图可能是某个班级的成员。您没有指定它的定义位置。 如果你想从另一个类访问它,你应该让它可以被其他类访问(通过公开),并通过引用它来创建它的对象。
例如:
class X {
...
public HashMap<String, String> accessPoints = new HashMap<String, String>();
...
}
class Y {
...
X xObj = new X();
xObj.accessPoints.put ("fff","yyy");
...
}
当然,以面向对象的方式更好地将地图设为私有,并通过方法从其他类访问它。
class X {
...
private HashMap<String, String> accessPoints = new HashMap<String, String>();
...
public void addAccessPoint (String key, String value) {
accessPoints.put(key,value);
}
}
class Y {
...
X xObj = new X();
xObj.addAccessPoint ("fff","yyy");
...
}