创建具有解析项目的数组 [英] Create an array of items with Parse

查看:83
本文介绍了创建具有解析项目的数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能够单独项目存入解析,在这里例如一个新的列名ActivityName将与用户已在点击一个按钮选择的活动名称创建,并且当用户选择不同的活动ActivityName下activityname会被改变。不过,我不希望它改变,而我希望它被添加到ActivityName,在那里你会拥有(活动1,活性2,activityn)。

I am able to store individual item into parse, where for instance a new column name ActivityName would be created with the activity name that the user have selected upon a button click, and when a user select a different activity the activityname under ActivityName would be changed. However, I do not want it to change, rather I want it to be added to the column of ActivityName, where you would have (activity1, activity2, activityn).

下面是code我都用来存储被改为每一项活动被点击一次单独活动名称。

Below is the code I have used to store the individual activity name that gets replaced every time an activity is clicked.

 @Override
            public void onClick(View v) {
                ParseUser currentUser = ParseUser.getCurrentUser();

           // Create the class and the columns
            currentUser.saveInBackground();

            currentUser.put("ActivityName", list_item_name); 
            currentUser.put("ActivityPrice", list_item_price);
            currentUser.put("ActivityPurchasePriceCode", list_item_purchase_code);
            currentUser.saveInBackground(new SaveCallback() {
                @Override
                public void done(ParseException e) {
                    setProgressBarIndeterminateVisibility(false);

                    if (e == null) {
                        // Success!
                        Intent intent = new Intent(CasualEventsSingleItemActivity.this, usermatch.class);
                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                        startActivity(intent);
                    }
                    else {
                        AlertDialog.Builder builder = new AlertDialog.Builder(CasualEventsSingleItemActivity.this);
                        builder.setMessage(e.getMessage())
                            .setTitle(R.string.signup_error_title)
                            .setPositiveButton(android.R.string.ok, null);
                        AlertDialog dialog = builder.create();
                        dialog.show();
                    }
               }
           });

        }
    });

我已经尝试使用以下

I have tried using the following

currentUser.add("ActivityName", list_item_name); 
            currentUser.add("ActivityPrice", list_item_price);
            currentUser.add("ActivityPurchasePriceCode", list_item_purchase_code);

但都没有这么成功,下面是日志猫的消息:

but that have not been so successful, and below is the log cat message:

09-18 19:24:49.728: E/AndroidRuntime(4202): FATAL EXCEPTION: main
09-18 19:24:49.728: E/AndroidRuntime(4202): Process: com.dooba.beta, PID: 4202
09-18 19:24:49.728: E/AndroidRuntime(4202): java.lang.IllegalArgumentException: Operation is invalid after previous operation.
09-18 19:24:49.728: E/AndroidRuntime(4202):     at com.parse.ParseAddOperation.apply(ParseAddOperation.java:75)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at com.parse.ParseObject.performOperation(ParseObject.java:2660)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at com.parse.ParseObject.addAll(ParseObject.java:2748)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at com.parse.ParseObject.add(ParseObject.java:2734)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at com.dooba.beta.CasualEventsSingleItemActivity$2.onClick(CasualEventsSingleItemActivity.java:119)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at android.view.View.performClick(View.java:4438)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at android.view.View$PerformClick.run(View.java:18422)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at android.os.Handler.handleCallback(Handler.java:733)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at android.os.Handler.dispatchMessage(Handler.java:95)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at android.os.Looper.loop(Looper.java:136)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at android.app.ActivityThread.main(ActivityThread.java:5017)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at java.lang.reflect.Method.invokeNative(Native Method)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at java.lang.reflect.Method.invoke(Method.java:515)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
09-18 19:24:49.728: E/AndroidRuntime(4202):     at dalvik.system.NativeStart.main(Native Method)

如果您需要任何澄清,让我知道。 在此先感谢

If you need any clarification, let me know. Thanks in advance

推荐答案

您需要做的是定义一个列数组类型,也许从中复制数据,添加阵列到阵列的开始,这是不可能做到这一点与解析

What you need to do is to declare a column as an array type and maybe copy the data from it , as for adding array to the beginning of the array , it is not possible to do that in with parse .

这篇关于创建具有解析项目的数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆