我正在尝试从某个班级访问某些字段,但是当我想给他们打电话时我会遇到麻烦。
这是我已声明字段的类:
public class InfoOfFriends {
public static final String Friends_List = "friends_list";
public static final String userName = "username";
public static final String STATUS = "status";
public static final String PORT = "port";
public static final String Ip = "Ip";
public static final String UserKey = "userKey";
public static final String Message = "message";
}
这就是我想要使用它们的地方:
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException
{
if (localName == "friend")
{
InfoOfFriends friend = new InfoOfFriends();
friend.username = attributes.getValue(InfoOfFriends.userName);
String status = attributes.getValue(InfoOfFriends.STATUS);
friend.port = attributes.getValue(InfoOfFriends.PORT);
if (status != null && status.equals("online")) {
friend.status = InfoStatus.ONLINE;
mOnlineFriends.add(friend);
} else if (status.equals("unApproved")) {
friend.status = InfoStatus.UNAPPROVED;
mUnApprovedFriends.add(friend);
} else {
friend.status = InfoStatus.OFFLINE;
mOnlineFriends.add(friend);
}
}
else if (localName == "user")
{
this.userKey = attributes.getValue(InfoOfFriends.UserKey);
}
super.startElement(uri ,localName, name, (org.xml.sax.Attributes) attributes);
}
这些部分有errors
:
friend.username = attributes.getValue(InfoOfFriends.userName);
friend.port = attributes.getValue(InfoOfFriends.PORT);
friend.status = InfoStatus.ONLINE;
friend.status = InfoStatus.UNAPPROVED;
friend.status = InfoStatus.OFFLINE;
感谢您的朋友们...
答案 0 :(得分:0)
首先,您确定attributes
具有正确的值吗?
并记得使用equals()
方法作为字符串比较器
if (localName.equals("friend"))
而不是
if (localName == "friend")
答案 1 :(得分:0)
您无法为最终字段分配新值。删除final关键字以解决错误。
此外,您将所有字段设置为静态并使用它们作为键从属性中检索内容,但同时您要为它们分配新值 - 可能是个坏主意。尝试使用最终静态键创建一个单独的类以用于属性检索,并使用单独的Friend类将检索到的值分配给。