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

我是 android studio 编程的新手,我在尝试从列表片段中获取在列表视图中单击的项目的位置时遇到了一些麻烦。

问题是我有一个主要活动,其中我有一个查看寻呼机,其中一个页面是歌曲列表。我想要的是获得在此列表中选择的歌曲的位置。我尝试在 mi List 片段中实现点击处理程序,但它总是显示下一个错误:“无法在父级或祖先上下文中找到方法”(已经尝试更改函数名称和 xml 文件)所以我尝试了在 MainActivity 中处理点击事件并且它确实有效但是当我尝试获得位置时,它总是返回我 -1

我在这段代码中期望的是获取所选项目的位置数并将其保存在 i 变量中而不是获取 -1



弑天下
浏览 83回答 1
1回答

慕盖茨4494581

根据您的代码,您正在检查 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。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java