Advertisement
Guest User

Untitled

a guest
Nov 4th, 2020
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 4.20 KB | None | 0 0
  1. package net.androidly.androidlyintents
  2.  
  3. import android.app.Activity
  4. import android.content.ComponentName
  5. import android.content.Context
  6. import android.content.Intent
  7. import android.net.Uri
  8. import android.support.v7.app.AppCompatActivity
  9. import android.os.Bundle
  10. import android.os.Parcelable
  11. import android.view.View
  12. import android.widget.Toast
  13. import android.widget.Toast.LENGTH_LONG
  14. import kotlinx.android.parcel.Parcelize
  15. import kotlinx.android.synthetic.main.activity_main.*
  16. import java.io.Serializable
  17.  
  18.  
  19. @Parcelize
  20. data class Student(
  21.         val name: String = "Anupam",
  22.         val age: Int = 24
  23. ) : Parcelable
  24.  
  25. data class Blog(val name: String = "Androidly", val year: Int = 2018) : Serializable
  26.  
  27.  
  28. class MainActivity : AppCompatActivity(), View.OnClickListener {
  29.  
  30.  
  31.     fun Context.gotoClass(targetType: Class<*>) =
  32.             ComponentName(this, targetType)
  33.  
  34.     fun Context.startActivity(createIntent: Intent.() -> Unit): Unit =
  35.             Intent().apply(createIntent).run(this::startActivity)
  36.  
  37.     inline fun <reified T : Activity> Context.start(
  38.             noinline createIntent: Intent.() -> Unit = {}
  39.     ) = startActivity {
  40.         component = gotoClass(T::class.java)
  41.         createIntent(this)
  42.     }
  43.  
  44.  
  45.     var arrayList = ArrayList<String>()
  46.  
  47.     override fun onCreate(savedInstanceState: Bundle?) {
  48.         super.onCreate(savedInstanceState)
  49.         setContentView(R.layout.activity_main)
  50.         btnSimpleIntent.setOnClickListener(this)
  51.         btnSimpleIntentAndData.setOnClickListener(this)
  52.         btnParcelableIntent.setOnClickListener(this)
  53.         btnSerializableIntent.setOnClickListener(this)
  54.         btnBrowserIntent.setOnClickListener(this)
  55.         btnMapsIntent.setOnClickListener(this)
  56.         btnGenericIntent.setOnClickListener(this)
  57.  
  58.         arrayList.add("Androidly")
  59.         arrayList.add("Android")
  60.         arrayList.add("Intents")
  61.     }
  62.  
  63.     override fun onClick(v: View?) {
  64.         when (v?.id) {
  65.             R.id.btnSimpleIntent -> {
  66.                 val intent = Intent(this, OtherActivity::class.java)
  67.                 startActivity(intent)
  68.             }
  69.             R.id.btnSimpleIntentAndData -> {
  70.                 val intent = Intent(this, OtherActivity::class.java)
  71.                 with(intent)
  72.                 {
  73.                     putExtra("keyString", "Androidly String data")
  74.                     putStringArrayListExtra("arrayList", arrayList)
  75.                     putExtra("keyBoolean", true)
  76.                     putExtra("keyFloat", 1.2f)
  77.                 }
  78.                 startActivity(intent)
  79.             }
  80.             R.id.btnParcelableIntent -> {
  81.  
  82.                 val student = Student()
  83.                 val intent = Intent(this, OtherActivity::class.java)
  84.                 intent.putExtra("studentData", student)
  85.                 startActivity(intent)
  86.             }
  87.             R.id.btnSerializableIntent -> {
  88.                 val blog = Blog("a", 1)
  89.                 val intent = Intent(this, OtherActivity::class.java)
  90.                 intent.putExtra("blogData", blog as Serializable)
  91.                 startActivity(intent)
  92.             }
  93.             R.id.btnBrowserIntent -> {
  94.                 val url = "https://www.androidly.net"
  95.                 val uri = Uri.parse(url)
  96.                 val intent = Intent(Intent.ACTION_VIEW, uri)
  97.  
  98.                 if (intent.resolveActivity(packageManager) != null) {
  99.                     startActivity(intent)
  100.                 } else {
  101.                     Toast.makeText(applicationContext, "No application found", LENGTH_LONG).show()
  102.                 }
  103.             }
  104.             R.id.btnMapsIntent -> {
  105.                 val loc = "12.9538477,77.3507442"
  106.  
  107.                 val addressUri = Uri.parse("geo:0,0?q=" + loc)
  108.                 val intent = Intent(Intent.ACTION_VIEW, addressUri)
  109.  
  110.  
  111.                 if (intent.resolveActivity(packageManager) != null) {
  112.                     startActivity(intent)
  113.                 } else {
  114.                     Toast.makeText(applicationContext, "No application found", LENGTH_LONG).show()
  115.                 }
  116.             }
  117.             else -> start<OtherActivity> {
  118.                 putExtra("keyString", "Androidly Generic Intent")
  119.             }
  120.         }
  121.     }
  122.  
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement