Sunday, July 19, 2020

Customize Spinner - Kotlin

Spinner containing week days, select the default day depending on the device day,

and customize background.

 
Demo:


Xml File:

Drawable code:

<?xml version="1.0" encoding="utf-8"?>
<selector
 xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <layer-list>
            <item>
                <shape android:shape="rectangle">
                    <corners android:radius="10dp"/>
                    <padding android:right="10dp"/>
                    <solid android:color=
                        "@color/spinner_transparent_background"/>
                </shape>
            </item>
            <item android:drawable="@drawable/ic_drop_down"
                android:gravity="right|center_vertical">
            </item>
        </layer-list>
    </item>
</selector>

Layout code:
<Spinner
    android:id="@+id/spinner"
    android:background="@drawable/style_dropdown"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:overlapAnchor="false"
android:layout_margin="20dp" />
//
 This code will show the dropdown menu below the layout
    android:overlapAnchor="false"
Main File:
MainActivity Code:

lateinit var spinner: Spinner

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


    spinner = findViewById(R.id.spinner)

    
    spinnerSet()
}


// Array that defines days of the week.
var weekdays = arrayOf(
    "Saturday",
    "Sunday",
    "Monday",
    "Tuesday",
    "Wednesday",
    "Thursday",
    "Friday"
)

fun getCurrentDay(): Int {
    val calendar = Calendar.getInstance()
    val day = calendar[Calendar.DAY_OF_WEEK]

    return when (day) {
        Calendar.SUNDAY -> 1
        Calendar.MONDAY -> 2
        Calendar.TUESDAY -> 3
        Calendar.WEDNESDAY -> 4
        Calendar.THURSDAY -> 5
        Calendar.FRIDAY -> 6
        Calendar.SATURDAY -> 0
        else -> 1
    }
}

fun spinnerSet() {

    val adapter = ArrayAdapter<String>(
        applicationContext!!,
        R.layout.text_spinner,
        weekdays
    )
    adapter.setDropDownViewResource(R.layout.text_spinner)

    spinner.adapter = adapter
    spinner.setSelection(getCurrentDay())
    spinner.onItemSelectedListener = 
        object : AdapterView.OnItemSelectedListener {
            override fun onNothingSelected(p0: AdapterView<*>?) {

            }
            override fun onItemSelected
                (p0: AdapterView<*>?, p1: View?, p2: Int, p3: Long) {
                    val day = weekdays[p2]
                    Toast.makeText(applicationContext!!,
                                 day, Toast.LENGTH_LONG).show()
            }
    }

}


Thursday, July 9, 2020

Shared Preferences - Kotlin

To save your data

Main Activity code:

class MainActivity : AppCompatActivity() {


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

var editor=getSharedPreferences("button_key",MODE_PRIVATE).edit()

button_switch.setOnClickListener {
//saving data
editor.putBoolean("button_status",button_switch.isChecked)
editor.apply()

//retrieving data
var prefs=getSharedPreferences("button_key",MODE_PRIVATE)
val button_status_textview=prefs.getBoolean("button_status",false)
textView_status.text="button status is $button_status_textview"
}


}

}
Here is the xml Code:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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">

<TextView
android:id="@+id/textView_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Switch
android:id="@+id/button_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_marginEnd="32dp"
android:text="Switch"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

demo : you can retrieve  your data from different activity



 



Wednesday, July 8, 2020

Custom Animation -XML

Make your Animation
Set your custom animation in view
First of all go to res create anim folder and the create animation reasorce file
in animation dericatory 
a blink animation code is:

<?xml version="1.0" encoding="utf-8"?>
<set 
    xmlns:android="http://schemas.android.com/apk/res/android">

   <alpha android:fromAlpha="0.0"
           android:toAlpha="1.0"
           android:interpolator="@android:anim/accelerate_decelerate_interpolator"
           android:duration="300"
           android:repeatMode="restart"
           android:repeatCount="0" />
</set>

a bounce animation code is:
<set 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true"
    android:interpolator="@android:anim/bounce_interpolator">
       <scale android:toXScale="1.0"
           android:fromYScale="0.0"
           android:toYScale="1.0"
           android:fromXScale="1.0"
           android:duration="1500"/>
</set>


in main activity
    val anim= AnimationUtils.loadAnimation(applicationContext,R.anim.blink)
    buttonView.startAnimation(anim)

Dilog Builder - Kotlin


Dialog Builder in Kotlin 

Set your default dialog in MainActivity

demo:


After clicking any button you can show dialoug
in 
button.setOnClickListener{
   
       val dialogBuilder=AlertDialog.Builder(this@MainActivity)
            dialogBuilder.setTitle("Hey Stop")
            dialogBuilder.setMessage("Do yo0u want to go to the next page?")

            dialogBuilder.setPositiveButton("Yes",
                    DialogInterface.OnClickListener{
                        dialogInterface: DialogInterface?, which: Int ->

                        val intent=Intent(this,ListActivity::class.java)
                        startActivity(intent)

                    })
            dialogBuilder.setNegativeButton("No",DialogInterface.OnClickListener{
                dialog: DialogInterface?, which: Int ->
                Toast.makeText(this@MainActivity,"Sorry",Toast.LENGTH_LONG).show()
            })
            val alertDialog=dialogBuilder.create()
            alertDialog.show()

}

Set your Custom Alert Dialog  in MainActivity


button.setOnClickListener{
 
            val view=layoutInflater.inflate(R.layout.alert_dialog,null)
            val dialogBuilder=AlertDialog.Builder(this@MainActivity)

            dialogBuilder.setView(view)
            dialogBuilder.setTitle("Hey Stop")
            dialogBuilder.setMessage("Do yo0u want to go to the next page?")


            val alertDialog=dialogBuilder.create()
            alertDialog.show()

            val editTextrr=view.findViewById<EditText>(R.id.editTextrr)


            view.buttonShoww.setOnClickListener {
                val namee=editTextrr.text.toString()
                Toast.makeText(this@MainActivity,"$namee",Toast.LENGTH_LONG).show()
                alertDialog.dismiss()
            }
            view.buttonCancel.setOnClickListener {
                Toast.makeText(applicationContext,
                        "I Can not Show Your  name",Toast.LENGTH_LONG).show()
                alertDialog.dismiss()
            }

        }
}


Dilog Builder - Kotlin

Dialog Builder in Kotlin  Set your default dialog in MainActivity demo: After clicking any button you can show dialoug in  button.setOnClick...