亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在列表視圖中單擊的項目位置錯誤

在列表視圖中單擊的項目位置錯誤

弒天下 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 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號