获取解析行错误的 ObjectId
Posted
技术标签:
【中文标题】获取解析行错误的 ObjectId【英文标题】:Getting Parse Row Wrong ObjectId 【发布时间】:2021-08-07 12:35:33 【问题描述】:我有一个列表视图,其中包含 4 个对象。当我长按其中一个对象时,会打开一个带有“删除”选项的菜单,我可以删除该行。 但是,由于某种原因,我得到了错误的行 objetId,我无法弄清楚我做错了什么。
这就是我所做的:
创建上下文菜单:
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo)
super.onCreateContextMenu(menu, v, menuInfo);
// Get the list
feedListView = (ListView)v;
// Get the list item position
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
int position = info.position;
position -= feedListView.getHeaderViewsCount();
int finalPosition = position;
if (ParseUser.getCurrentUser().getUsername().equals(data.getUserName()))
Log.e("Test","Same user + ObjectId = " + ((AdapterView.AdapterContextMenuInfo) menuInfo).position);
if (v.getId()==R.id.feedListView)
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mymenu, menu);
else
Log.e("Test","Not Your Post");
Toast.makeText(this, "Its not your post", Toast.LENGTH_SHORT).show();
从上下文菜单中选择:
if (item.getItemId() == R.id.deleteMenu)
new AlertDialog.Builder(FeedActivity.this)
.setTitle("Are you sure ?")
.setMessage("Are you sure you want to delete this post?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int which)
ParseQuery<ParseObject> query = ParseQuery.getQuery("Feed");
objects.get(finalPosition).deleteInBackground(new DeleteCallback()
@Override
public void done(ParseException e)
Log.e("Done","Item Deleted Successfully !!!");
arrayList.remove(finalPosition);
adapter.notifyDataSetChanged();
);
);
)
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int which)
dialog.cancel();
)
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
谢谢
【问题讨论】:
【参考方案1】:所以我通过添加以下两行来修复它:
第一个:
MyData Editdata = (MyData) adapter.getItem(position);
到
MyData Editdata = (MyData) adapter.getItem(finalPosition);
我添加的第二行是(我添加它是因为我的列表视图显示方式相同):
query.orderByDescending("updatedAt");
【讨论】:
以上是关于获取解析行错误的 ObjectId的主要内容,如果未能解决你的问题,请参考以下文章
错误:任务':app:processDebugResources'的执行失败。>(第3485行,第33行)解析错误。找到“-”,预期“(”