Accessing widget



1. To access a widget, we don't need to write findViewById. We can directly access with id.

IMPORTED CLASS
-----------------------
import kotlinx.android.synthetic.main.activity_main.*
-----------------------

LAYOUT
-----------------------
<TextView    android:id="@+id/selectedFoodTxt"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content"
android:text="India"
   />
-----------------------

JAVA
-----------------------
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        selectedFoodTxt.text = "USA"

    }
}
-----------------------

2. Button - Let us create a button click event

LAYOUT
-----------------------
<Button    android:id="@+id/decideBtn"    
android:layout_width="0dp"    
android:layout_height="wrap_content"
    android:text="Decide!"   />
-----------------------
JAVA
-----------------------
class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        decideBtn.setOnClickListener{          
        }

    }
}
-----------------------



3. LET US CREATE A PROGRAM - We will add a random value to list.

LAYOUT
--------------------------------
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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">


    <ImageView        
android:id="@+id/imageView"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_marginTop="48dp"        
app:layout_constraintEnd_toEndOf="parent"        
app:layout_constraintStart_toStartOf="parent"        
app:layout_constraintTop_toTopOf="parent"        
app:srcCompat="@drawable/dd_logo" />

    <TextView        
android:id="@+id/selectedFoodTxt"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_marginTop="24dp"        
android:text="Chinese"        
android:textColor="@color/colorPrimaryDark"        
android:textSize="20sp"        
app:layout_constraintEnd_toEndOf="parent"        
app:layout_constraintStart_toStartOf="parent"        
app:layout_constraintTop_toBottomOf="@+id/imageView" />

    <Button        
android:id="@+id/decideBtn"        
android:layout_width="0dp"        
android:layout_height="wrap_content"        
android:background="@color/colorPrimary"        
android:fontFamily="@font/muli_bold"        
android:text="Decide!"        
android:textColor="@color/colorWhite"        
app:layout_constraintBottom_toBottomOf="parent"        
app:layout_constraintEnd_toEndOf="parent"        
app:layout_constraintStart_toStartOf="parent" />

    <EditText        
android:id="@+id/addFoodTxt"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content"        
android:layout_marginBottom="12dp"        
android:ems="10"        
android:hint="Enter new food..."        
android:inputType="textPersonName"        
android:textColorHint="@color/colorPrimary"        
app:layout_constraintBottom_toTopOf="@+id/addFoodBtn"        
app:layout_constraintEnd_toEndOf="parent"        
app:layout_constraintStart_toStartOf="parent" />

    <Button        android:id="@+id/addFoodBtn"        
style="?android:attr/borderlessButtonStyle"        
android:layout_width="217dp"        
android:layout_height="wrap_content"        
android:layout_marginBottom="72dp"        
android:background="@color/colorPrimary"        
android:fontFamily="@font/muli_bold"        
android:text="ADD FOOD"        
android:textAlignment="center"        
android:textColor="@color/colorWhite"        
android:textSize="16sp"        
app:layout_constraintBottom_toTopOf="@+id/decideBtn"        
app:layout_constraintEnd_toEndOf="parent"        
app:layout_constraintHorizontal_bias="0.503"        
app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>
--------------------------------

JAVA
--------------------------------
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import java.util.*

class MainActivity : AppCompatActivity() {

    val  foodList = arrayListOf<String>("Chenese", "Pizza", "HamBurger", "MacDonalds", "Barros Pizza")

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        selectedFoodTxt.text = "USA"
        decideBtn.setOnClickListener{            val random = Random()
            val randomFood = random.nextInt(foodList.count())
            selectedFoodTxt.text = foodList[randomFood]
        }
        addFoodBtn.setOnClickListener{
            val newFood = addFoodTxt.text.toString()
            foodList.add(newFood)
            addFoodTxt.text.clear()
            print(foodList)
        }
    }
}
--------------------------------

4. aa








Comments