Wie erreiche ich ViewPager (nächste / vorherige) in Music Player App

Ich möchte wissen, wie ich mit Swipe über einen View-Pager das Nächste und Vorherige erreichen kann. Das Endergebnis, das ich haben möchte, ist das von Google Play Music. Ich habe ein Bild hochgeladen, wie sich meine App verhält und was ich davon erwarte. Grundsätzlich kann ich mit meinem ViewPager keine Vorschau des nächsten und des vorherigen Titels anzeigen. Kann mir jemand bitte helfen, wie ich den View-Pager mit Seiten der Titel bestücken kann, die ich wiedergeben möchte, damit Google auf dem Musikwiedergabebildschirm Musik zum nächsten / vorherigen Mal wiedergibt.

 public class PlayPagerAdapter extends FragmentStatePagerAdapter {
    final String POSITION = "position";
    Context mContext;

    public PlayPagerAdapter(FragmentManager fm,Context context) {
        super(fm);
        mContext = context;

    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        super.destroyItem(container, position, object);
    }

    @Override
    public Fragment getItem(int position) {

        Fragment fragment = new FragmentNowPlaying();
        Log.e("CHASE MUSIC","The get Item position is " + position);
        Bundle args = new Bundle();
        args.putInt(POSITION, position);
        fragment.setArguments(args);

        return fragment;
    }

    @Override
    public int getCount() {


        mApp = (Common) mContext.getApplicationContext();


        try {
            if (mApp.getService().getQueue().length !=0 ) {
                return mApp.getService().getQueue().length;
            } else {
                mApp.getService().stopSelf();
                return 0;
            }
        }catch(Exception e){
            e.printStackTrace();
            return 0;
        }


    }

}

Okay jetzt unten Ich habe den Code aus dem Fragment hinzugefügt, insbesondere Code, der den Positionswert aus dem Fragment-Adapter hat. Bitte beachten Sie, dass der Service die meisten Aufgaben übernimmt, dh Songs aus der Warteschlange, Next, Previous, Pause und Play werden alle vom Service übernommen.

 public void updateTrackInfo() {

    songPosition = getArguments().getInt(POSITION);
    Log.e("Chase Music SongPos","Song Position is: "+ songPosition);

    if (mService == null) {
        return;
    }
    try {
        long songid = songPosition;
            ((View) mArtistName.getParent()).setVisibility(View.VISIBLE);
            ((View) mAlbumName.getParent()).setVisibility(View.VISIBLE);
            String artistName = mService.getArtistName();
            if (MediaStore.UNKNOWN_STRING.equals(artistName)) {
                artistName = getString(R.string.unknown_artist_name);
            }
            mArtistName.setText(artistName);

            String albumName = mService.getAlbumName();
            long albumid = mService.getAlbumId();
            if (MediaStore.UNKNOWN_STRING.equals(albumName)) {
                albumName = getString(R.string.unknown_album_name);
                albumid = -1;
            }
            mAlbumName.setText(albumName);
            mSongName.setText(mService.getTrackName());
            mAlbumArtHandler.removeMessages(GET_ALBUM_ART);
            mAlbumArtHandler.obtainMessage(GET_ALBUM_ART, new AlbumSongIdWrapper(albumid, songid)).sendToTarget();
            mCoverArt.setVisibility(View.VISIBLE);

        mDuration = mService.duration();
    } catch (RemoteException ex) {
        getActivity().finish();
    }
}

Ich rufe die obige Methode in onActivityCreated () auf.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage