查询自定义parse.com类将返回null

时间:2015-05-14 03:19:54

标签: android parse-platform

我目前正在开发一个使用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

提前致谢。

1 个答案:

答案 0 :(得分:0)

我只提供可能适合您的事情,不知道这些是否是明确的正确答案。

尝试仅通过当前用户查询,看看你是否得到了回报。而且,似乎你可能错过了&#34;()&#34;在getCurrentUser的末尾。

query.whereEqualTo("createdBy", ParseUser.getCurrentUser());

这个下一个选项在过去随机适用于我。

number_of_coins = String.valueOf(object.get("coins"));