Created
July 27, 2017 06:21
-
-
Save mikkipastel/95ae6133312a51acd0519df8713fb0a3 to your computer and use it in GitHub Desktop.
Show list by RecylerView
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:background="#000000"> | |
<android.support.v7.widget.RecyclerView | |
android:id="@+id/songlist" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" /> | |
</FrameLayout> | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mikkipastel.exoplanet.playlist; | |
import android.view.View; | |
public interface ItemListener { | |
void onClick(View v, int position); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mikkipastel.exoplanet.playlist; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.support.annotation.Nullable; | |
import android.support.v4.app.Fragment; | |
import android.support.v7.widget.LinearLayoutManager; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import com.mikkipastel.exoplanet.R; | |
import com.mikkipastel.exoplanet.player.PlayerActivity; | |
public class PlaylistFragment extends Fragment implements ItemListener{ | |
RecyclerView songListView; | |
RecyclerAdapter adapter; | |
// sample to show before get from firebase storage | |
int[] cover = {R.drawable.cover01, | |
R.drawable.cover02, | |
R.drawable.cover03, | |
R.drawable.cover04, | |
R.drawable.cover05}; | |
String[] songname = {"Breaks 6-29-2560 BE, 12_31 PM.wav", | |
"Essential EDM 6-23-2560 BE, 5_24 PM.wav", | |
"Hip Hop 6-27-2560 BE, 7_12 PM.wav", | |
"House 2 6-28-2560 BE, 9_08 PM.wav", | |
"House 6-23-2560 BE, 5_43 PM.wav"}; | |
public PlaylistFragment() { | |
super(); | |
} | |
public static PlaylistFragment newInstance() { | |
PlaylistFragment fragment = new PlaylistFragment(); | |
Bundle args = new Bundle(); | |
fragment.setArguments(args); | |
return fragment; | |
} | |
@Override | |
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { | |
View rootView = inflater.inflate(R.layout.fragment_playlist, container, false); | |
initInstances(rootView); | |
return rootView; | |
} | |
public void initInstances(View rootView){ | |
songListView = (RecyclerView) rootView.findViewById(R.id.songlist); | |
adapter = new RecyclerAdapter(this, getContext(), cover, songname); | |
songListView.setNestedScrollingEnabled(false); | |
songListView.setLayoutManager(new LinearLayoutManager(getActivity() | |
, LinearLayoutManager.VERTICAL | |
, false)); | |
songListView.setAdapter(adapter); | |
adapter.notifyDataSetChanged(); | |
} | |
@Override | |
public void onStart() { | |
super.onStart(); | |
} | |
@Override | |
public void onStop() { | |
super.onStop(); | |
} | |
/* | |
* Save Instance State Here | |
*/ | |
@Override | |
public void onSaveInstanceState(Bundle outState) { | |
super.onSaveInstanceState(outState); | |
// Save Instance State here | |
} | |
/* | |
* Restore Instance State Here | |
*/ | |
@Override | |
public void onActivityCreated(Bundle savedInstanceState) { | |
super.onActivityCreated(savedInstanceState); | |
if (savedInstanceState != null) { | |
// Restore Instance State here | |
} | |
} | |
@Override | |
public void onClick(View v, int position) { | |
Intent intent = new Intent(getActivity(), PlayerActivity.class); | |
intent.putExtra(PlayerActivity.BUNDLE_POSITION, position); | |
startActivity(intent); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mikkipastel.exoplanet.playlist; | |
import android.content.Context; | |
import android.support.v7.widget.RecyclerView; | |
import android.view.LayoutInflater; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.ImageView; | |
import android.widget.TextView; | |
import com.mikkipastel.exoplanet.R; | |
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | |
Context mContext; | |
int[] mCover; | |
String[] mSongName; | |
ItemListener mListener; | |
protected int mItemCount = 0; | |
public RecyclerAdapter(ItemListener listener, Context context, int[] cover, String[] songname){ | |
this.mContext = context; | |
this.mCover = cover; | |
this.mSongName = songname; | |
this.mListener = listener; | |
} | |
@Override | |
public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View view = LayoutInflater.from(parent.getContext()) | |
.inflate(R.layout.item_track, parent, false); | |
ViewHolder viewHolder = new ViewHolder(view); | |
return viewHolder; | |
} | |
@Override | |
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { | |
// set cover and track name | |
ViewHolder mHolder = (ViewHolder) holder; | |
mHolder.cover.setImageResource(mCover[position]); | |
mHolder.name.setText(mSongName[position]); | |
mHolder.itemView.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
mListener.onClick(v, position); | |
} | |
}); | |
} | |
public class ViewHolder extends RecyclerView.ViewHolder { | |
ImageView cover; | |
TextView name; | |
public ViewHolder(View view) { | |
super(view); | |
cover = (ImageView)view.findViewById(R.id.imageTrack); | |
name = (TextView)view.findViewById(R.id.nameTrack); | |
} | |
} | |
@Override | |
public int getItemCount() { | |
int itemCount = mItemCount; | |
if (itemCount == 0) { | |
itemCount = mSongName.length; | |
} | |
return itemCount; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment