为了账号安全,请及时绑定邮箱和手机立即绑定

在列表视图中单击的项目位置错误

在列表视图中单击的项目位置错误

弑天下 2022-12-28 13:56:37
我是 android studio 编程的新手,我在尝试从列表片段中获取在列表视图中单击的项目的位置时遇到了一些麻烦。问题是我有一个主要活动,其中我有一个查看寻呼机,其中一个页面是歌曲列表。我想要的是获得在此列表中选择的歌曲的位置。我尝试在 mi List 片段中实现点击处理程序,但它总是显示下一个错误:“无法在父级或祖先上下文中找到方法”(已经尝试更改函数名称和 xml 文件)所以我尝试了在 MainActivity 中处理点击事件并且它确实有效但是当我尝试获得位置时,它总是返回我 -1我在这段代码中期望的是获取所选项目的位置数并将其保存在 i 变量中而不是获取 -1
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

根据您的代码,您正在检查 Activity 上的点击事件。如果我假设您在 onClick() 中获得点击事件


然后您可以通过添加要查看的位置元数据来解决问题。像


case R.id.play_song:

                    int position = (int)view.getTag();

                    //and use this position for MediaPlayer

现在如何设置这些元数据来查看。


为此,您需要通过如下所示扩展它来创建自己的 SimpleCursorAdapter 类版本


public class MyAdapter extends SimpleCursorAdapter {


    public MyAdapter(Context context, int layout, Cursor c, String[] from,

                           int[] to, int flags) {

       super(context, layout, c, from,to,flags);

    }


@Override

    public View getView(int position, View convertView, ViewGroup parent) {

       View view = super.getView(position, convertView, parent);

       //Here we are adding meta data which is position in our case

       view.findViewById(R.id.play_song).setTag(position);

       return view;

    }

}

现在,在您的 Songs 片段中使用此扩展版本的 SimpleCursorAdapter。


查看完整回答
反对 回复 2022-12-28
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号