我在变量和解析查询方面遇到很多麻烦。我的一些解决方案是创建一个方法并将参数放入其中,然后从查询中调用它并插入我需要的值作为参数。但我需要在 onCreate 中使用这些值。当将此变量设置为全局时
ParseObject empresa;
String stringEmpresa;
String tipoDeEmpresa;
String tipoEmpresa;
String role;
当我在 onCreate 上使用它们时,将值放入查询中,它们为空。
public void parseQuery(){
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.include("Empresa");
query.include("ComercialAsignado");
query.include("ComercialTallerAsignado");
query.getInBackground(ParseUser.getCurrentUser().getObjectId(), new GetCallback<ParseUser>() {
@Override
public void done(ParseUser object, ParseException e) {
if (e == null) {
queryEmpresa();
tipoDeEmpresa = object.getString("tipoDeEmpresa");
role = object.getString("Rol");
initBottomFromRolUser(role, tipoDeEmpresa);
showItemNVFromRol(role, tipoDeEmpresa);
initFloatingButton(tipoDeEmpresa);
}
}
});
我还尝试用另一种方法检索数据,但它检索到错误的数据,这是一个屏幕截图。另一个问题是没有检索我的用户类中显示的所有列,这就是原因
tipoEmpresa=user.getString("tipoDeEmpresa");
这是空的。
另请注意,我的 demo3 角色是管理员,而不是 Usuario。
记住在done方法中设置这些全局变量不允许我在onCreate中使用这些变量
最佳答案
费利佩, 您在此处发布的代码并不反射(reflect)您的屏幕截图中的代码。
请您使用固定的 objectId 进行测试,以便我们知道问题不是来自 ParseUser.getCurrentUser().getObjectId() 吗?
请像这样测试:
final String objectIdOfUser = "LJ9AongycH";
ParseQuery<ParseUser> query = ParseUser.getQuery();
query.getInBackground(objectIdOfUser, new GetCallback<ParseUser>() {
@Override
public void done(ParseUser object, ParseException e) {
if (e == null) {
// The query was successful, returns the users that matches
// the criterias.
System.out.println(objectIdOfUser + " " + object.getString("Rol"));
System.out.println(objectIdOfUser + " " + object.getString("tipoDeEmpresa"));
} else {
// Something went wrong.
}
}
});
关于java - 如何在 onCreate 中使用从 parse 方法获取的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57825132/