From 96cd2ddcc4e1939b1175684be165c5dcd2c4a2aa Mon Sep 17 00:00:00 2001 From: amazing-username Date: Thu, 14 Mar 2019 22:26:49 -0400 Subject: [PATCH] Created Adapter for populating the track titles #32 and #33 --- .../mear/activities/SongViewActivity.kt | 23 +++++++ .../example/mear/adapters/RecyclerAdapter.kt | 63 ++++++++++++++++++ .../com/example/mear/models/TrackItems.kt | 5 ++ app/src/main/res/layout/content_song_view.xml | 10 ++- .../main/res/layout/fragment_song_view.xml | 64 +++++++++++++++++++ 5 files changed, 159 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt create mode 100644 app/src/main/java/com/example/mear/models/TrackItems.kt create mode 100644 app/src/main/res/layout/fragment_song_view.xml diff --git a/app/src/main/java/com/example/mear/activities/SongViewActivity.kt b/app/src/main/java/com/example/mear/activities/SongViewActivity.kt index 030a00e..ecfacb2 100644 --- a/app/src/main/java/com/example/mear/activities/SongViewActivity.kt +++ b/app/src/main/java/com/example/mear/activities/SongViewActivity.kt @@ -3,6 +3,7 @@ package com.example.mear.activities import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.widget.LinearLayout +import android.widget.ListView import kotlinx.android.synthetic.main.activity_song_view.* import kotlinx.android.synthetic.main.content_song_view.* @@ -12,10 +13,32 @@ import com.example.mear.repositories.TrackRepository class SongViewActivity : AppCompatActivity() { + private lateinit var listView: ListView + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_song_view) setSupportActionBar(toolbar) supportActionBar?.setDisplayHomeAsUpEnabled(true) + + initializeAdapter() + } + + + + private fun initializeAdapter() { + listView = findViewById(R.id.recipe_list_view) +// 1 + val recipeList = Recipe.getRecipesFromFile("recipes.json", this) +// 2 + val listItems = arrayOfNulls(recipeList.size) +// 3 + for (i in 0 until recipeList.size) { + val recipe = recipeList[i] + listItems[i] = recipe.title + } +// 4 + val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, listItems) + listView.adapter = adapter } } diff --git a/app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt b/app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt new file mode 100644 index 0000000..b0a86d0 --- /dev/null +++ b/app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt @@ -0,0 +1,63 @@ +package com.example.mear.com.example.mear.adapters + +import android.content.Context +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.support.v7.widget.RecyclerView +import android.support.v7.widget.RecyclerView.Adapter +import android.view.LayoutInflater +import android.widget.TextView +import android.widget.ImageView +import android.view.View +import android.view.ViewGroup +import android.widget.BaseAdapter + +import com.example.mear.models.TrackItems +import com.example.mear.R + +class RecyclerAdapter(private val context: Context, + private val source: ArrayList): BaseAdapter() { + + + private val inflater: LayoutInflater + = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater + + + override fun getCount(): Int { + return source.size + } + + //2 + override fun getItem(position: Int): Any { + return source[position] + } + + //3 + override fun getItemId(position: Int): Long { + return position.toLong() + } + + //4 + override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { + // Get view for row item + val rowView = inflater.inflate(R.layout.fragment_song_view, parent, false) + + val trackTitleTextView = rowView.findViewById(R.id.trackTitle) as TextView + +// Get subtitle element + val trackArtistTextView= rowView.findViewById(R.id.trackArtist) as TextView + +// Get detail element + val trackCoverImageView = rowView.findViewById(R.id.trackCover) as ImageView + + val track = getItem(position) as TrackItems + +// 2 + trackTitleTextView.text = track.trackTitle + trackArtistTextView.text = track.artistTitle + trackCoverImageView.setImageBitmap(BitmapFactory.decodeByteArray(track.trackCover, 0, track.trackCover.size)) + + + return rowView + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/TrackItems.kt b/app/src/main/java/com/example/mear/models/TrackItems.kt new file mode 100644 index 0000000..73bd01e --- /dev/null +++ b/app/src/main/java/com/example/mear/models/TrackItems.kt @@ -0,0 +1,5 @@ +package com.example.mear.models + +data class TrackItems(val id: Int, val trackTitle: String, val artistTitle: String, val trackCover: ByteArray) { + +} \ No newline at end of file diff --git a/app/src/main/res/layout/content_song_view.xml b/app/src/main/res/layout/content_song_view.xml index 0c49437..ab3fe36 100644 --- a/app/src/main/res/layout/content_song_view.xml +++ b/app/src/main/res/layout/content_song_view.xml @@ -9,11 +9,9 @@ tools:showIn="@layout/activity_song_view"> - + - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_song_view.xml b/app/src/main/res/layout/fragment_song_view.xml new file mode 100644 index 0000000..f084216 --- /dev/null +++ b/app/src/main/res/layout/fragment_song_view.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +