获取解析行错误的 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的主要内容,如果未能解决你的问题,请参考以下文章

go语言 从命令行获取参数解析

错误:任务':app:processDebugResources'的执行失败。>(第3485行,第33行)解析错误。找到“-”,预期“(”

DOMDocument无法解析XML

在 Python 中解析 HTML 时获取位置信息

解析配置文件、环境和命令行参数,以获取单个选项集合

某些行的 XML 文件解析错误 [关闭]