簡體   English   中英

使用列表與服務android進行交互

[英]Using list to interact with service android

我正在制作一個簡單的音樂播放器,我制作了一個帶有3個textvie和一個imagebutton的自定義列表適配器。

我在按鈕上放置了一個單擊偵聽器以顯示對話框。 在對話框中,有一個選項隊列。 此選項將用於使音樂服務中的歌曲排隊。 我想知道如何將我的服務與清單聯系起來? 如果無法連接,我如何將該隊列按鈕的操作發送給MainActivity?

以下是我的適配器代碼

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = LayoutInflater.from(getContext());

    convertView = inflater.inflate(R.layout.songs_list, parent, false);


    final Song song = getItem(position);

    final ImageButton optionsImgBtn = convertView.findViewById(R.id.options_imgbbtn);
    optionsImgBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            PopupMenu optionnMenu = new PopupMenu(getContext(), view);
            optionnMenu.getMenuInflater().inflate(R.menu.list_option, optionnMenu.getMenu());

            optionnMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem menuItem) {
                    if(menuItem.getItemId()==R.id.vd){



                    }else if(menuItem.getItemId()==R.id.vdi){

                    }
                    return true;
                }
            });
            optionnMenu.show();
        }
    });

    TextView txtvDname = convertView.findViewById(R.id.dname_txtv);
    TextView txtvArtist = convertView.findViewById(R.id.artist_txtv);
    TextView txtvDuration = convertView.findViewById(R.id.duration_txtv);



    txtvDname.setText(song.name);
    txtvArtist.setText(song.artist);
    txtvDuration.setText(getFormatedTime(Integer.parseInt(song.duration)));

    return  convertView;
}

順便說一句,我正在使用綁定服務。

注意:我知道如何使用onItemLongClickListner,但我不想使用它,而是想使用自己制作的按鈕。

帶條形右邊的按鈕是我要使用的按鈕

我已經找到了解決方案,我認為這對使用Java的所有人都非常有幫助。

只需創建一個適配器的抽象類和一個抽象方法即可。 比您正在初始化適配器的活動中實施方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM