【54】Kotlin android Anko神兵利器
アンコ
Androidアプリケーションの開発をより簡単に、より高速なライブラリです。Ankoはあなたのコードを分かりやすくして、Android SDKがJavaバージョンに対する制限を気にしなくてもいいです。
アンコにはたくさんのモジュールがあります。私達は下のこのタイプを選んで集めてみます。
module:app->build.gradle->dependencies
以下のコードを追加します
レイアウト
イベントの転送を簡単にすることもできます。
前に伝える方法 MainActivity
新しいバージョンの依存はサポートされていません。
アンコは自分のdslがあります レイアウトは自分で定義できます。
私たちが修正する前の TestActivity. レイアウトのカスタムレイアウトを削除
これはちょっとios開発に似ています。as上にもレイアウトをakに変換するプラグインがあります。アンコを検索すれば検索できます。
Androidアプリケーションの開発をより簡単に、より高速なライブラリです。Ankoはあなたのコードを分かりやすくして、Android SDKがJavaバージョンに対する制限を気にしなくてもいいです。
アンコにはたくさんのモジュールがあります。私達は下のこのタイプを選んで集めてみます。
module:app->build.gradle->dependencies
以下のコードを追加します
implementation "org.jetbrains.anko:anko-sdk15:0.9.1"
コードを同期した後レイアウト
package com.anguomob.demoforktanko
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import org.jetbrains.anko.onClick
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tv_hello.onClick { view->
Toast.makeText(view!!.context,tv_hello.text,Toast.LENGTH_LONG).show()
}
}
}
これだけ簡略化しました OClickはこれに依存を加える必要がありますか?イベントの転送を簡単にすることもできます。
前に伝える方法 MainActivity
package com.anguomob.demoforktanko
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import org.jetbrains.anko.onClick
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tv_hello.onClick { view ->
val intent = Intent(this@MainActivity, TestActivity::class.java)
intent.putExtra("Key","From MainActivity")
startActivity(intent)
}
}
}
受け入れ方 TestActivity package com.anguomob.demoforktanko
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_test.*
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
intent.extras?.get("Key").let{
tv_ta_hello.text= it.toString()
}
}
}
anko簡略化後の送り方 MainActivity package com.anguomob.demoforktanko
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import org.jetbrains.anko.onClick
import org.jetbrains.anko.startActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tv_hello.onClick { view ->
startActivity("Key" to "From mainActivity")
}
}
}
運転しても効果は変わりません。新しいバージョンの依存はサポートされていません。
implementation "org.jetbrains.anko:anko-sdk15:0.10.8"
アンコは自分のdslがあります レイアウトは自分で定義できます。
私たちが修正する前の TestActivity. レイアウトのカスタムレイアウトを削除
これはちょっとios開発に似ています。as上にもレイアウトをakに変換するプラグインがあります。アンコを検索すれば検索できます。
package com.anguomob.demoforktanko
import android.os.Bundle
import android.view.Gravity
import androidx.appcompat.app.AppCompatActivity
import org.jetbrains.anko.matchParent
import org.jetbrains.anko.relativeLayout
import org.jetbrains.anko.textView
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val text = intent.extras?.get("Key").toString()?:" "
relativeLayout {
textView(text) {
}.lparams(width = matchParent, height = matchParent) {
gravity = Gravity.CENTER
}
}
}
}
MainActivitypackage com.anguomob.demoforktanko
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
import org.jetbrains.anko.startActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tv_hello.setOnClickListener { view ->
startActivity("Key" to "From mainActivity")
}
}
}