Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Build a Self-Destructing Message Android App Relating Users in Parse.com Removing Friend Relationships

I can't get it right need help please

Challenge Task 2 of 2

Now we need to save these changes to the back-end. Call the save method for mCurrentUser to save this change in the background. Use mSaveCallback as the parameter for the save method.

MainListActivity.java
import android.app.ListActivity;
import android.view.ListView;
import android.view.View;
import android.util.Log;
import com.parse.ParseUser;
import com.parse.ParseObject;
import com.parse.ParseRelation;
import com.parse.ParseException;
import com.parse.SaveCallback;

public class MainListActivity extends ListActivity {

    protected ParseUser mCurrentUser;
    protected ParseRelation<ParseObject> mSitesRelation;
    protected ParseObject[] mWebsites;

    protected SaveCallback mSaveCallback = new SaveCallback() {      
        @Override
        public void done(ParseException e) {
            if (e == null) {
                Log.i("Website removed!");
            }
          mcurrentUser.saveInBackground( saveCallback());

        }
    };

    /*
     * Some code has been omitted for brevity!
     */

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        ParseObject website = mWebsites[position];
      mSitesRelation.remove(website);

    }
}
MUZ140915 Ronald Dzingai
MUZ140915 Ronald Dzingai
5,248 Points

Hi Willilunga, I think you are almost there, can you try this: public class MainListActivity extends ListActivity {

protected ParseUser mCurrentUser;
protected ParseRelation<ParseObject> mSitesRelation;
protected ParseObject[] mWebsites;

protected SaveCallback mSaveCallback = new SaveCallback() {      
    @Override
    public void done(ParseException e) {
        if (e == null) {
            Log.i("Website removed!");
        }
    }
};

/*
 * Some code has been omitted for brevity!
 */

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    ParseObject website = mWebsites[position];

mSitesRelation.remove(website); mCurrentUser.saveInBackground(mSaveCallback);

}

}

1 Answer

MUZ140915 Ronald Dzingai
MUZ140915 Ronald Dzingai
5,248 Points

Try this one, should work for you;

public class MainListActivity extends ListActivity {

protected ParseUser mCurrentUser;
protected ParseRelation<ParseObject> mSitesRelation;
protected ParseObject[] mWebsites;

protected SaveCallback mSaveCallback = new SaveCallback() {      
    @Override
    public void done(ParseException e) {
        if (e == null) {
            Log.i("Website removed!");
        }
    }
};

/*
 * Some code has been omitted for brevity!
 */

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    ParseObject website = mWebsites[position];

mSitesRelation.remove(website); mCurrentUser.saveInBackground(mSaveCallback);

}

}