diff --git a/app/build.gradle b/app/build.gradle index 01f6c5e..2d4d60f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,6 +23,11 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + + buildFeatures { + viewBinding true + } + compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 diff --git a/app/src/main/java/iut/android/pierrepierre/MoleGridActivity.kt b/app/src/main/java/iut/android/pierrepierre/MoleGridActivity.kt index 7c2a6d0..3bad2e8 100644 --- a/app/src/main/java/iut/android/pierrepierre/MoleGridActivity.kt +++ b/app/src/main/java/iut/android/pierrepierre/MoleGridActivity.kt @@ -1,16 +1,43 @@ package iut.android.pierrepierre import android.os.Bundle -import android.os.PersistableBundle -import android.widget.GridView +import android.widget.AdapterView.OnItemClickListener +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity -class MoleGridActivity(var Moles : List) : AppCompatActivity(){ +class MoleGridActivity : AppCompatActivity() { + ///https://developer.android.com/topic/libraries/view-binding#kotlin + //var binding: ActivityMainBinding? = null + private lateinit var binding : MoleGridBinding - - override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { - super.onCreate(savedInstanceState, persistentState) - setContentView(R.layout.mole_grid) - findViewById(R.id.MoleGrid).adapter = MyGridAdapter(context = this, Moles) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = MoleGridBinding.inflate(layoutInflater) + setContentView(binding.getRoot()) + val MoleName = arrayOf( + "Mole1", "Mole2", "Mole3", "Mole4", + "Mole5", "Mole6", "Mole7", "Mole8", "Mole9", "Mole10" + ) + val flowerImages = intArrayOf( + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule, + R.drawable.Limule + ) + val gridAdapter = MyGridAdapter(this@MoleGridActivity, MoleName, flowerImages) + binding.gridView.setAdapter(gridAdapter) + binding.gridView.setOnItemClickListener(OnItemClickListener { parent, view, position, id -> + Toast.makeText( + this@MoleGridActivity, + "You Clicked on " + MoleName[position], + Toast.LENGTH_SHORT + ).show() + }) } } \ No newline at end of file diff --git a/app/src/main/java/iut/android/pierrepierre/MyGridAdapter.kt b/app/src/main/java/iut/android/pierrepierre/MyGridAdapter.kt index 70ea5a2..0cd990a 100644 --- a/app/src/main/java/iut/android/pierrepierre/MyGridAdapter.kt +++ b/app/src/main/java/iut/android/pierrepierre/MyGridAdapter.kt @@ -1,78 +1,40 @@ package iut.android.pierrepierre import android.content.Context -import android.database.DataSetObserver +import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.ArrayAdapter -import android.widget.ListAdapter -import androidx.recyclerview.widget.RecyclerView.Adapter +import android.widget.BaseAdapter +import android.widget.ImageView +import android.widget.TextView -class MyGridAdapter(context : Context, private var Moles : List) : ListAdapter{ - override fun registerDataSetObserver(observer: DataSetObserver?) { - TODO("Not yet implemented") - } - - override fun unregisterDataSetObserver(observer: DataSetObserver?) { - TODO("Not yet implemented") - } -// override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Mole { -// //return MoleView(LayoutInflater.from(parent.Context).inflate(R.layout.mole_grid)) -// return Mole(false) -// } -// -// override fun onBindViewHolder(holder: Mole, position: Int) { -// TODO("Not yet implemented") -// } -// -// override fun getItemCount(): Int { -// TODO("Not yet implemented") -// } +class MyGridAdapter(var context: Context, var MoleName: Array, var image: IntArray) : + BaseAdapter() { + var inflater: LayoutInflater? = null override fun getCount(): Int { - return Moles.size + return MoleName.size } - override fun getItem(position: Int): Any { - return Moles[position] + override fun getItem(position: Int): Any? { + return null } override fun getItemId(position: Int): Long { - TODO("Not yet implemented") - } - - override fun hasStableIds(): Boolean { - TODO("Not yet implemented") - } - - override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { - TODO("Not yet implemented") - } - - override fun getItemViewType(position: Int): Int { - TODO("Not yet implemented") + return 0 } - override fun getViewTypeCount(): Int { - TODO("Not yet implemented") - } - - override fun isEmpty(): Boolean { - return Moles.isEmpty() - } - - override fun areAllItemsEnabled(): Boolean { - for (i in Moles){ - if (i.isDead()){ - return false - } + override fun getView(position: Int, convertView: View, parent: ViewGroup): View { + var convertView = convertView + if (inflater == null) inflater = + context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater + if (convertView == null) { + convertView = inflater!!.inflate(R.layout.mole_grid, null) } - return true + val imageView = convertView.findViewById(R.id.grid_image) + val textView = convertView.findViewById(R.id.item_name) + imageView.setImageResource(image[position]) + textView.text = MoleName[position] + return convertView } - - override fun isEnabled(position: Int): Boolean { - return !Moles[position].isDead() - } - - } \ No newline at end of file diff --git a/app/src/main/res/drawable/Limule.png b/app/src/main/res/drawable/Limule.png new file mode 100755 index 0000000..2cf59f2 Binary files /dev/null and b/app/src/main/res/drawable/Limule.png differ diff --git a/app/src/main/res/layout/moleitem.xml b/app/src/main/res/layout/moleitem.xml index 80e8411..32b5cb9 100644 --- a/app/src/main/res/layout/moleitem.xml +++ b/app/src/main/res/layout/moleitem.xml @@ -1,20 +1,24 @@ - + - - - - + - \ No newline at end of file + + + + \ No newline at end of file