使用list与服务android交互

时间:2017-09-09 17:28:33

标签: android listview service

我正在制作一个简单的音乐播放器,我制作了一个带有3个textvies和图像按钮的自定义列表适配器。

我在按钮中放置了一个单击侦听器以显示对话框。在对话框中有一个选项队列。此选项将用于排列音乐服务中的歌曲。我想知道 如何将我的服务与列表连接? 如果无法连接,我如何将此队列按钮的操作发送到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;
}

BTW我正在使用绑定服务。

注意:我知道如何使用onItemLongClickListner,但我不想使用它我想使用我制作的按钮。

Button on the right with bars is the button I want to use

1 个答案:

答案 0 :(得分:0)

我已经找到了我自己的解决方案,我认为这对你们所有的java新手都非常有帮助。

只需创建一个抽象类的适配器和一个抽象方法。比在初始化适配器的活动中实现方法。