More Related Content
More from Phonepaseuth Phonhdala
More from Phonepaseuth Phonhdala (20)
Lab 10 gride view
- 1. ວິທະຍາໄລສອນພິທັກລາວ ອຈ ພອນປະເສີດ ຜົນດາລາ
1
ພາກປະຕິບັດ 10
ສະແດງຮູບໃນ GridView
1. ສ້າງ Project ໃໝ່ GridView Food
2. ຂຽນໂຄດໃນ activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<GridView
android:id="@+id/gvFoods"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="150dp"
android:horizontalSpacing="15dp"
android:numColumns="auto_fit"
android:verticalSpacing="15dp">
</GridView>
</RelativeLayout>
3. ນາຮູບອາຫານມາກ ັບໄວ້ທີ່ Drawable
4. ສ້າງ food_entry.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:background="#DAF7A6"
android:orientation="vertical"
android:gravity="center"
android:padding="15dp">
<ImageView
android:id="@+id/imgFood"
android:layout_width="150dp"
android:layout_height="120dp"
android:src="@drawable/papaya_salad" />
<TextView
android:id="@+id/tvName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
- 2. ວິທະຍາໄລສອນພິທັກລາວ ອຈ ພອນປະເສີດ ຜົນດາລາ
2
android:text="ຕຳຫຼວງພະບຳງ"
android:textSize="16dp"
android:textColor="#154360"/>
<TextView
android:id="@+id/tvPrice"
android:gravity="center"
android:text="ລຳຄຳ 15,000 ກີບ/ຈຳນ"
android:textSize="12dp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
5. ສ້າງ Food.kt
package com.example.phonhdala.grideviewfood
class Food {
var name: String?=null
var price: String?=null
var image: Int?=null
constructor(name: String,price:String,image: Int){
this.name=name
this.price=price
this.image=image
}
}
6. ເພີ່ ມ Empty Activity ໃໝ່ໂດຍຕັ້ງຊ່ເປັນ FoodDetials
7. ຂຽນໂຄດໃນ activity_food_detials.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".FoodDetials">
<ImageView
android:id="@+id/imgFoodDetials"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginTop="30dp"
android:src="@drawable/papaya_salad"/>
<TextView
- 3. ວິທະຍາໄລສອນພິທັກລາວ ອຈ ພອນປະເສີດ ຜົນດາລາ
3
android:id="@+id/tvNameDetial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="0dp"
android:text="ຕຳຫຼວງພະບຳງ"
android:textColor="@color/colorPrimary"
android:textSize="24sp"/>
<TextView
android:id="@+id/tvPriceDetial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="15,000 ກີບ/ຈຳນ"
android:textSize="16dp"/>
</LinearLayout>
8. ຂຽນໂຄດໃນ MainActivity.kt
class MainActivity : AppCompatActivity() {
var adapter:FoodAdapter?=null
var foodsList=ArrayList<Food>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Load foods
foodsList.add(Food("ຕຳຫຼວງພະບຳງ","15,000 ກີບ/
ຈຳນ",R.drawable.papaya_salad))
foodsList.add(Food("ແກງໜໍ່","35,000 ກີບ/
ຖ້ວຍ",R.drawable.bamboo_soup))
foodsList.add(Food("ແກງເຫັດ","35,000 ກີບ/
ຖ້ວຍ",R.drawable.mushroom_soup))
foodsList.add(Food("ໄຄແຜໍ່ນ","20,000 ກີບ/
ຈຳນ",R.drawable.kaipan))
foodsList.add(Food("ແຈໍ່ວປຳແດກ","25,000 ກີບ/
ຈຳນ",R.drawable.jeopadage))
foodsList.add(Food("ທອດປີກໄກໍ່","20,000 ກີບ/
ຈຳນ",R.drawable.chicken_wing))
foodsList.add(Food("ແໜມເຂ້ຳ","25,000 ກີບ/
ຈຳນ",R.drawable.nam_rice))
foodsList.add(Food("ປ້ງໄກໍ່ທຳປຳແດກ","30,000 ກີບ/
ຈຳນ",R.drawable.chicken_padeak))
foodsList.add(Food("ໄກໍ່ຕ້ມ","35,000 ກີບ/
ຈຳນ",R.drawable.chicken_tome))
foodsList.add(Food("ເຄໍ່ອງໃນງວລວກ","35,000 ກີບ/
- 4. ວິທະຍາໄລສອນພິທັກລາວ ອຈ ພອນປະເສີດ ຜົນດາລາ
4
ຈຳນ",R.drawable.luaokeungnay))
adapter=FoodAdapter(this,foodsList)
gvFoods.adapter=adapter
}
class FoodAdapter:BaseAdapter{
var myfoodsList=ArrayList<Food>()
var context:Context?=null
constructor(context: Context,foodsList:
ArrayList<Food>):super(){
this.context=context
this.myfoodsList=foodsList
}
override fun getCount(): Int {
return myfoodsList.size
}
override fun getItem(p0: Int): Any {
return myfoodsList[p0]
}
override fun getItemId(p0: Int): Long {
return p0.toLong()
}
override fun getView(position: Int, convertView: View?,
parent: ViewGroup?): View {
val food=this.myfoodsList[position]
val inflater=context!!.getSystemService(Context
.LAYOUT_INFLATER_SERVICE) as LayoutInflater
var foodView=inflater.inflate(R
.layout.food_entry,null)
foodView.imgFood.setOnClickListener {
val intent=Intent(context
,FoodDetials::class.java)
intent.putExtra("name",food.name!!)
intent.putExtra("price",food.price!!)
intent.putExtra("image",food.image)
context!!.startActivity(intent)
}
foodView.imgFood.setImageResource(food.image!!)
foodView.tvName.text=food.name!!
foodView.tvPrice.text=food.price!!
return foodView
}
}
}
- 5. ວິທະຍາໄລສອນພິທັກລາວ ອຈ ພອນປະເສີດ ຜົນດາລາ
5
9. ຂຽນໂຄດໃນ FoodDetials.kt
class FoodDetials : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_food_detials)
val bundle=intent.extras
imgFoodDetials.setImageResource(bundle.getInt("image"))
tvNameDetial.text=bundle.getString("name")
tvPriceDetial.text=bundle.getString("price")
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId==android.R.id.home){
onBackPressed()
}
return super.onOptionsItemSelected(item)
}
override fun onBackPressed() {
super.onBackPressed()
}
}