0
Imageという名前のテーブルがあります。 私は、画面上のオブジェクトをクリックすると、解析でそれを削除することができます。 この表のユーザーIDはimageuseridで、行のIDはobjectIdです。Parseから特定のオブジェクトを削除するには?
My活動コード:
public class DeletePostsActivity extends AppCompatActivity {
private String DELETE_LIST;
private ArrayList<ParseObject> delete;
private ArrayAdapter<ParseObject> adapter;
private ParseQuery<ParseObject> query;
private ListView listView;
private TextView txtDelete;
private ProgressDialogUtils progress;
private View parentLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delete_posts);
parentLayout = this.findViewById(android.R.id.content);
DELETE_LIST = SaveSharedPreferences.getUserId(this);
progress = new ProgressDialogUtils();
txtDelete = (TextView)findViewById(R.id.txtDeleteEmpty);
delete = new ArrayList<>();
listView = (ListView)findViewById(R.id.listDelete);
adapter = new DeleteAdapter(this, delete);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
progress.startProgress(getContext());
deleteItem(position);
}
});
Snackbar.make(parentLayout,getString(R.string.item_click_delete),Snackbar.LENGTH_LONG)
.setAction("Action",null).show();
}
private void deleteItem(int position) {//how to do this???
//How to delete the specific item?
}
@Override
public void onStart() {
super.onStart();
getPostsToDelete();
}
//catch the posts from user to show
private void getPostsToDelete() {
progress.startProgress(this);
query = ParseQuery.getQuery("Imagem");
query.whereEqualTo("imageuserid", DELETE_LIST);
query.orderByDescending("createdAt");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
progress.endProgress(getContext());
if (e == null) {//sucesso
if (objects.size() > 0) {
if (txtDelete.getVisibility() == View.VISIBLE) {//retira o texto da tela se houver catálogo
txtDelete.setVisibility(View.GONE);
}
delete.clear();
for (ParseObject parseObject : objects) {
delete.add(parseObject);
}
adapter.notifyDataSetChanged();
} else {
txtDelete.setVisibility(View.VISIBLE);//mostra um texto somente para que a tela não fique em branco
}
} else {//erro
e.printStackTrace();
}
}
});
}
private Context getContext() {
return this;
}
}
私は、この特定のオブジェクトを削除することはできないんだけど、この質問の助けが必要。 特定の行を削除するにはどうすればよいですか?
てみてください; 'と' parseObject.saveInBackground()を; ' – Yupi
しかし、私いくつかの項目のリストがあります。私は最初のものを削除することはできません、私は特定のクリックアイテムを削除する必要があります。 –
コードが正しく動作していて、foorループに当たった場合、 'delete.add(parseObject);の代わりに' parseObject.deleteInBackground(); 'のために使ってみてください – Yupi