解析クエリを作成したので、ライブ クエリを実装する必要があります。しかし、私のクエリには a があり、このメソッドでは異なることList<ParseObject>
がわかります。liveQuery
public void onEvent(ParseQuery<ParseObject> query, final ParseObject object) {
ParseQuery は、このメソッドが持つものです。それについては、私の以前の投稿を参照してください)。
これは、ドキュメントで提案されているコードです。
if (parseLiveQueryClient != null) {
ParseQuery<ParseObject> parseQuery = new ParseQuery("Message");
parseQuery.whereEqualTo("destination", "pokelist");
SubscriptionHandling<ParseObject> subscriptionHandling = parseLiveQueryClient.subscribe(parseQuery);
subscriptionHandling.handleEvent(SubscriptionHandling.Event.CREATE, new SubscriptionHandling.HandleEventCallback<ParseObject>() {
@Override
public void onEvent(ParseQuery<ParseObject> query, final ParseObject object) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
EditText pokeText = findViewById(R.id.pokeText);
numPokes++;
if(numPokes == 1) {
pokeText.setText("Poked " + numPokes + " time.");
}
else {
pokeText.setText("Poked " + numPokes + " times.");
}
}
});
}
});}
私はこれを作成し、メッセージのリストを更新しました。助言がありますか?私は解析が初めてで、かなり混乱しています!
ParseQuery<ParseObject> query = ParseQuery.getQuery("Conversaciones");
queryChat = ParseObject.createWithoutData("Chat", idChatSeleccionadoAppUsuario);
query.whereEqualTo("ChatId", queryChat);
query.include("Usuario");
query.include("ChatId");
SubscriptionHandling<ParseObject> subscriptionHandling= App.parseLiveQueryClient.subscribe(query);
subscriptionHandling.handleEvent(SubscriptionHandling.Event.CREATE, new SubscriptionHandling.HandleEventCallback<ParseObject>() {
@Override
public void onEvent(final ParseQuery<ParseObject> query, final ParseObject object) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
listaDeMensajes.add(object);
}
});
mMessageAdapter = new MessageListAdapter(getContext(), listaDeMensajes);
mMessageRecycler.setAdapter(mMessageAdapter);
queryFromChat();
}
});