1

データ型を作成してカスタム化し、それに値を追加しようとしています。

2 つのフィールドが正常に作成されました。コールバックを受けています。私のコードは

    // Subscribe to some data sources!
                            DataTypeCreateRequest  request = new DataTypeCreateRequest.Builder()
                                    // The prefix of your data type name must match your app's package name
                                    .setName("com.fitnessapi.data_type")
                                            // Add some custom fields, both int and float
                                    .addField("one", Field.FORMAT_FLOAT)
                                    .addField("two", Field.FORMAT_FLOAT)
                                    .addField(Field.FIELD_ACTIVITY)
                                    .build();



                            PendingResult<DataTypeResult> pendingResult = Fitness.ConfigApi.createCustomDataType(mClient, request);
                            request.


                            pendingResult.setResultCallback(
                                    new ResultCallback<DataTypeResult>() {
                                        @Override
                                        public void onResult(DataTypeResult dataTypeResult) {
                                            // Retrieve the created data type
                                            DataType customType = dataTypeResult.getDataType();
                                            System.out.println("one two" + customType.toString());


                                        }
                                    }
                            );

                            // [START auth_build_googleapiclient_ending]
                        }

これら 2 つのフィールドに値を入力する方法が見つかりません。

4

2 に答える 2

1

私もこの問題に遭遇しました。

ドキュメントは getVaule を使用するように言っています:

dataPoint.getValue(0).setInt(mField1IntValue);    

問題は、getVaule メソッドが Field を必要とすることです。いろいろ試してみたところ、次の方法でフィールドのリストを取得できることがわかりました。

dataSet.getDataType().getFields()

したがって、カスタムの DateType フィールドを設定するには、このメソッドを使用しています。

dataPoint.getValue(dataSet.getDataType().getFields().get(0)).setInt(5);

これが正しいという考えはありません、またはそれを行う愚かな方法ですが、機能します。

于 2015-01-15T08:09:44.643 に答える