我目前正在开发一个使用Parse的Android应用程序,并创建了一个包含一些用户数据的自定义Parse数据类。但是,在尝试从其中一个列检索数据时,查询此类始终返回null或0。如果我尝试查询我在Parse User类中创建的任何自定义列,也会发生这种情况。另外,我已经检查了Parse数据浏览器,据此,数据应该在那里。
这是我的代码。我正在使用应用程序类来初始化Parse。
public class MainActivity extends FragmentActivity {
SharedPreferences sharedpreferences;
String user_id;
String number_of_coins;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final View main = getLayoutInflater().inflate(R.layout.activity_main, null);
sharedpreferences = getSharedPreferences("My_Preferences", Context.MODE_PRIVATE);
user_id = sharedpreferences.getString("user_id", "");
ParseQuery<ParseObject> query = ParseQuery.getQuery("User_Data");
query.whereEqualTo("createdBy", ParseUser.getCurrentUser.getUsername);
query.getFirstInBackground(new GetCallback<ParseObject>() {
public void done(ParseObject object, ParseException e) {
if (e == null) {
number_of_coins = object.getNumber("coins").toString();
} else {
}
}
});
ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#34495e")));
bar.setDisplayShowCustomEnabled(true);
bar.setDisplayShowTitleEnabled(false);
bar.setDisplayUseLogoEnabled(false);
bar.setDisplayHomeAsUpEnabled(false);
bar.setDisplayShowHomeEnabled(false);
ActionBar.LayoutParams layout = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT);
View actionbar_view = getLayoutInflater().inflate(R.layout.action_bar, null);
ImageView settings_button = (ImageView) actionbar_view.findViewById(R.id.settings_button);
settings_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Settings.class);
startActivity(intent);
}
});
TextView coins = (TextView) actionbar_view.findViewById(R.id.coins);
coins.setText(String.valueOf(number_of_coins));
bar.setCustomView(actionbar_view, layout);
}
}
顺便说一句,我使用的是Android Studio 1.2.1.1和Parse 1.9.1
提前致谢。
答案 0 :(得分:0)
我只提供可能适合您的事情,不知道这些是否是明确的正确答案。
尝试仅通过当前用户查询,看看你是否得到了回报。而且,似乎你可能错过了&#34;()&#34;在getCurrentUser的末尾。
query.whereEqualTo("createdBy", ParseUser.getCurrentUser());
这个下一个选项在过去随机适用于我。
number_of_coins = String.valueOf(object.get("coins"));