Skip to main content

Posts

Showing posts with the label Kotlin Extra

android kotlin - selectableItemBackground programmatically

MainActivity.kt package com.example.jetpack import android.app.Activity import android.os.Bundle import android.util.TypedValue import android.view.View import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // make the text view clickable materialTextView.apply { isClickable = true isFocusable = true } applySelectableItemBackground(materialTextView) } } // extension function to apply selectable item background fun Activity.applySelectableItemBackground(v:View){ val typedValue = TypedValue() this.theme.resolveAttribute( android.R.attr.selectableItemBackground, typedValue, true ) if (typedValue.resourceId != 0) { v.setBackgroundResour...

android kotlin - Create ColorStateList programmatically

MainActivity.kt package com.example.jetpack import android.content.res.ColorStateList import android.graphics.Color import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // generate background tint list for button button2.backgroundTintList = generateColorStateList() // modify disabled color on method button3.backgroundTintList = generateColorStateList( // disabled color Alabaster disabledColor = Color.parseColor("#EDEAE0") ) // background tint list for checkbox and radio button materialCheckBox1.buttonTintList = generateColorStateList() materialRadioButton.buttonTintList = generateColorStateList() } } // method ...

android kotlin - Drag and drop easy example

MainActivity.kt package com.example.jetpack import android.content.ClipData import android.content.ClipDescription import android.graphics.Canvas import android.graphics.Color import android.graphics.Point import android.graphics.drawable.ColorDrawable import android.os.Build import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.DragEvent import android.view.View import android.widget.TextView import kotlinx.android.synthetic.main.activity_main.* import java.util.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val randomNumber = Random().nextInt(100) textView.text = "$randomNumber" textView.tag = textView.text textView.setOnClickListener {v-> val randomNumber = Random().nextInt(100) (v as TextView).text = "$randomNumber...

android kotlin - PreferenceFragmentCompat example

MainActivity.kt package com.example.jetpack import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.preference.PreferenceManager import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Get the preferences val prefs = PreferenceManager.getDefaultSharedPreferences(this) // Get the user dark theme settings val isDarkTheme = prefs.getBoolean("key_dark_theme",false) textView.text ="Dark Theme Enabled ? $isDarkTheme" btn.setOnClickListener{ // Load the settings fragment supportFragmentManager .beginTransaction() .replace(R.id.linearLayout,MySettingsFragment()) .commit() } } } activity_main.xml <?xml v...

android kotlin - Material chip example

MainActivity.kt package com.cfsuman.jetpack import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Set chip click listener chip1.setOnClickListener{ toast("chip clicked") } // Set chip checked change listener chip2.setOnCheckedChangeListener { view, isChecked -> // Handle the toggle. if (isChecked){ toast("chip checked") }else{ toast("chip unchecked") } } // Chip close icon click listener chip2.setOnCloseIconClickListener{ toast("chip close icon clicked...

android kotlin - Google maps example

MainActivity.kt package com.cfsuman.kotlingooglemapsexample import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.google.android.gms.maps.GoogleMap import com.google.android.gms.maps.OnMapReadyCallback import com.google.android.gms.maps.SupportMapFragment import com.google.android.gms.maps.CameraUpdateFactory import com.google.android.gms.maps.model.MarkerOptions import com.google.android.gms.maps.model.LatLng class MainActivity : AppCompatActivity(), OnMapReadyCallback{ private var mMap: GoogleMap? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) } override fun onMapReady(googleMap: GoogleMap) { mMap = googleMap // Add a marker in Dhaka, Bangladesh, and move the camera. val dhaka...

android kotlin - AsyncTask with cancel progress example

MainActivity.kt package com.cfsuman.kotlinexamples import android.content.Context import android.os.AsyncTask import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Initialize a new instance of AsyncImageDownload class val task = AsyncImageDownload(this,root_layout,progress_bar,text_view) // Button to start multiple images download button_start.setOnClickListener{ task.execute( "https://images.freeimages.com/images/large-previews/310/spring-1-1405906.jpg", "https://images.freeimages.com/images/large-previews/8f3/white-flower-power-1403046.jpg", "https://image...

android kotlin - Bottom navigation bar example

MainActivity.kt package com.cfsuman.kotlintutorials import android.app.Activity import android.graphics.Color import android.os.Bundle import android.widget.* import androidx.constraintlayout.widget.ConstraintLayout import com.google.android.material.bottomnavigation.BottomNavigationView class MainActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // get the widgets reference from XML layout val rootLayout = findViewById<ConstraintLayout>(R.id.rootLayout) val textView = findViewById<TextView>(R.id.textView) val bottomNavigationView = findViewById<BottomNavigationView>( R.id.bottomNavigationView) // Set navigation item selected listener bottomNavigationView.setOnItemSelectedListener { when(it.itemId){ R.id.attach_file -> { textVie...

android kotlin - Navigation drawer example

MainActivity.kt package com.cfsuman.kotlinexamples import android.content.Context import android.graphics.Color import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.support.v4.view.GravityCompat import android.support.v7.app.ActionBarDrawerToggle import android.view.View import android.widget.Toast import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Configure action bar setSupportActionBar(toolbar) val actionBar = supportActionBar actionBar?.title = "Hello Toolbar" // Initialize the action bar drawer toggle instance val drawerToggle:ActionBarDrawerToggle = object : ActionBarDrawerToggle( this, drawer_layout, toolbar, R.string.d...

Android kotlin: How to create and use extension function

Introduction This code demonstrates the concept of Extension Functions in Android development using Kotlin. Extension functions allow you to add functionalities to existing classes without modifying their original code. This approach promotes code reusability, readability, and reduces code clutter in the main activity class. Breakdown of the Code The code consists of three main parts: MainActivity.kt: This file contains the main activity class that interacts with the UI elements. It retrieves a reference to a TextView widget from the layout and utilizes various extension functions to manipulate its properties and behavior. MyExtensionFunctions.kt: This file houses a collection of extension functions specifically designed for the TextView class. These functions offer functionalities like underlining text, retrieving width and height in pixels, adding a shadow effect, and setting dummy text. activity_main.xml: This file defines the layout of the activity. It includes a sing...