2016-05-04 4 views
0

なんらかの理由で、Parseで文字列の配列から文字列を削除する方法がわかりません。 Parse Userクラスに配列があり、そこから特定の値を削除したいと思います。配列を反復処理して、削除したい正確な値を取得しても、保存しても削除されません。私は以下のコードを動作させることさえできないようです。私は行方不明の何か愚かなことはありますか?私は何の問題もなく配列に値を追加できます。Parse User Androidで文字列を配列から削除しますか?

public void removeBtn(View view) { 


    ParseUser.getCurrentUser().getList("friendAccept").remove(0); 
    ParseUser.getCurrentUser().saveInBackground(); 


} 
+0

すべて削除機能は動作しません。アイテムを削除するように配列を取得することができ、アイテムが削除されたようにアダプタが更新されますが、パーズは新しい配列を保存しないので、プログラムのログアウト時にリストが正常に戻ります。 –

+0

ユーザーを保存する前に、新しいアレイをユーザーに戻す必要があります。私は以下の答えを投稿します。 –

+0

ジャスティン、これにはまだ問題がありますか?私に答えを与えてください、それはあなたがしている間違いを説明します –

答えて

0

背景に節約しながら、それは本当に何かをやっているかどうかを確認するためにコールバックを使用してみてください:

ParseUser.getCurrentUser().saveInBackground(new SaveCallback() { 
      @Override 
      public void done(ParseException e) { 
       Log.d(TAG, "saved in background"); 
       if (e == null) 
        //ok 
       else 
        //something else went wrong 
      } 
     }); 
+0

残念ながら、コールバックは単なる "成功"を返します。それが私にとって奇妙なことでした。 –

0

はこれを試してみてください、私はあなたに、この原因が置かメソッドを使用していないと思います。

ParseUser user = ParseUser.getCurrentUser(); 
    List<Object> list = user.getList("friendAccept"); 
    if(list.size()>0) { 
     list.remove(0); 
    } 
    user.put("friendAccept", list); 
    user.saveInBackground(new SaveCallback() { 
     @Override 
     public void done(ParseException e) { 
      Log.d(TAG, "saved in background"); 
      if (e == null) 
       //ok 
      else 
       //something else went wrong 
     } 
    }); 
0

変更した配列をParseUserに戻すことができませんでした。

public void removeBtn(View view) { 

ParseUser currentUser = ParseUser.getCurrentUser() 
ArrayList<String> myList = (ArrayList<String>) currentUser.getList("friendAccept"); 
myList.remove(0); 
currentUser.put("friendAccept", myList); 
currentUser.saveInBackground(); 


} 
関連する問題