java无法在下一个类(活动)中获取哈希表
我在java中使用hashable非常新,所以我在java中的一个类中设置值,并在同一个类中获得值,但无法获得另一个类,为什么?我不知道这个
我的数据实际上是这样的:
<rule code="53" value="QN_775_0=QN_775_0>50" /> <rule code="55" value="QN_775_2=QN_775_2<3" />
我想把键53和其他键和值QN_775_0>;50。值放在逻辑运算符后面
在同一类中获取如下数据:
Logic lg= new Logic();
//like this value
String logicCode="53";
String logicCode="QN_775_0>50";
lg.add(logicCode, logicCode);
Enumeration<String> enumer = Logic.logicnew.keys();
while (enumer.hasMoreElements()) {
String keyFromTable = (String) enumer.nextElement();
System.out.println("1111111CODE="+keyFromTable + "VALUE = " + Logic.logicnew.get(keyFromTable));
}
我的模范班:
public class Logic {
public static Hashtable<String,String> logicnew;
public Logic(){
logicnew=new Hashtable<String,String>();
}
public void add(String a, String b){
logicnew.put(a,b);
}
public String get(String key){
return logicnew.get(key);
}
public int getSize(){
return logicnew.size();
}
public Hashtable<String, String> getLogic(){
return logicnew;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder("\n");
Set set = logicnew.entrySet();
Iterator it = set.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
sb.append("\t"+entry.getKey() + " : " + entry.getValue()+"\n");
}
return sb.toString();
}
}
但在下一个活动中,我正在这样做,但无法获得价值
Enumeration<String> enumer = Logic.logicnew.keys();
while (enumer.hasMoreElements()) {
String keyFromTable = (String) enumer.nextElement();
System.out.println("1111111CODE="+keyFromTable + "VALUE = " + Logic.logicnew.get(keyFromTable));
}
这里是枚举器。hasMoreElements()返回false值。为什么会这样
# 1 楼答案
当您的活动被终止时,静态哈希表将被重新初始化。只需在构造函数中添加日志:
如果您多次看到该日志,则表明哈希表已重新初始化。因此,您的代码
enumer.hasMoreElements()
返回false
是预期的行为,因为重新初始化后哈希表中没有任何元素有关如何在安卓系统中存储和检索数据的详细信息,请参阅Data Storage in Android