MorbidMask(吸血面具)-安全快速的對Activity或者Fragment傳遞參數(shù)

MorbidMask.png

物品介紹:

攻擊者每次攻擊都將根據(jù)造成的傷害回復15%的生命值。
吸血:15%

Github地址

Start

First Blood

  • 給Activity添加注解:

    @Params(
        Val("intParam", Int::class),
        Val("booleanParam", Boolean::class),
        Val("stringParam", String::class)
    )
    open class TestActivity : AppCompatActivity() 
    

    通過Params注解, 告訴該Activity需要的參數(shù)類型及參數(shù)名稱.

    例如TestActivity的參數(shù)分別為:

    • intParam :Int類型
    • booleanParam :Boolean類型
    • stringParam :String參數(shù)
  • 傳遞參數(shù)給Activity:

    Params注解編譯之后,將會生成該Activity對應的Director文件,命名規(guī)則為 Activity名稱+Director后綴,
    例如上面的TestActivity將會生成TestActivityDirector文件.

    btn_activity.setOnClickListener {
        //通過Director安全快速傳遞參數(shù)給TestActivity
        TestActivityDirector.of(this)
            .intParam(1123123123)
            .booleanParam(true)
            .stringParam("This is string param")
            .direct()
    }
    
  • 獲取傳遞給Activity的參數(shù):

    Params注解編譯之后, 除了會生成Director文件, 還會生成對應的Params文件, 命名規(guī)則為 Activity名稱+ Params后綴,
    例如上面的TestActivity將會生成TestActivityParams文件.

    class TestActivity : AppCompatActivity() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_test)
    
            //獲取params參數(shù)
            val params = TestActivityParams.of(this)
          
            Log.d("TAG", params.intParam.toString())
            Log.d("TAG", params.booleanParam.toString())
            Log.d("TAG", params.stringParam)
        }
    }
    

Double Kill

接下來嘗試給Fragment傳遞參數(shù).

  • 添加Params注解:

    @Params(
        Val("intParam", Int::class),
        Val("booleanParam", Boolean::class),
        Val("stringParam", String::class)
    )
    class TestFragment : Fragment()
    
  • 傳遞參數(shù)給Fragment:

    同樣的,Params注解編譯之后,將會生成該Fragment對應的Director文件,命名規(guī)則為 Fragment名稱+Director后綴,
    例如上面的TestFragment將會生成TestFragmentDirector文件.

    btn_fragment.setOnClickListener {
          TestFragmentDirector.of()
              .intParam(1123123123)
              .booleanParam(true)
              .stringParam("This is string param")
              .direct {
                  val fragmentTransaction = supportFragmentManager.beginTransaction()
                  fragmentTransaction.add(R.id.fragment_container, it)
                  fragmentTransaction.commit()
          }
    }
    
  • 獲取傳遞給Fragment的參數(shù):

    Params注解編譯之后, 除了會生成Director文件, 還會生成對應的Params文件, 命名規(guī)則為 Fragment名稱+ Params后綴,
    例如上面的TestFragment將會生成TestFragmentParams文件.

    class TestFragment : Fragment() {
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            val params = TestFragmentParams.of(this)
          
            Log.d("TAG", params.intParam.toString())
            Log.d("TAG", params.booleanParam.toString())
            Log.d("TAG", params.stringParam)
        }
    }
    

Triple Kill

傳遞自定義數(shù)據(jù)類型

除了上述基本數(shù)據(jù)類型外,還支持自定義的數(shù)據(jù)類型.

  • 添加自定義類型參數(shù):

    //自定義數(shù)據(jù)類型    
    class CustomEntity(
        val id: Int,
        val content: String
    )
    
    //使用自定義數(shù)據(jù)類型  
    @Params(
        Val("customParam", CustomEntity::class)
    )
    class TestActivity : AppCompatActivity() 
    
  • 傳遞自定義類型參數(shù):

    btn_activity.setOnClickListener {
        TestActivityDirector.of(this)
            .customParam(CustomEntity(123, "Custom entity content"))
            .direct()
    }
    

自定義數(shù)據(jù)類型默認使用Gson進行序列化和反序列化, 因此請在release環(huán)境中Keep自定義的數(shù)據(jù)類型, 以免發(fā)生問題!

Ultra Kill

利用MutableParams注解生成 var 類型參數(shù).

如上所見, 通過Params注解只能定義val不可變類型的參數(shù), 要想定義var可變類型的參數(shù), 可以通過
MutableParamsVar聲明可變類型的參數(shù).

例如:

@Params(
    Val("charParam", Char::class),
    Val("booleanParam", Boolean::class),
    Val("stringParam", String::class)
)
@MutableParams(
    Var("test", String::class),
    Var("test1", Boolean::class)
)
class TestActivity : AppCompatActivity() 

License

Copyright 2019 Season.Zlc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谈息,一起剝皮案震驚了整個濱河市域蜗,隨后出現(xiàn)的幾起案子巨双,更是在濱河造成了極大的恐慌,老刑警劉巖霉祸,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件筑累,死亡現(xiàn)場離奇詭異,居然都是意外死亡丝蹭,警方通過查閱死者的電腦和手機慢宗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奔穿,“玉大人镜沽,你說我怎么就攤上這事〖铮” “怎么了缅茉?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長男摧。 經(jīng)常有香客問我蔬墩,道長译打,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任拇颅,我火速辦了婚禮奏司,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘樟插。我一直安慰自己韵洋,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布黄锤。 她就那樣靜靜地躺著搪缨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猜扮。 梳的紋絲不亂的頭發(fā)上勉吻,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音旅赢,去河邊找鬼齿桃。 笑死,一個胖子當著我的面吹牛煮盼,可吹牛的內(nèi)容都是我干的短纵。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼僵控,長吁一口氣:“原來是場噩夢啊……” “哼香到!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起报破,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤悠就,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后充易,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梗脾,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年盹靴,在試婚紗的時候發(fā)現(xiàn)自己被綠了炸茧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡稿静,死狀恐怖梭冠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情改备,我是刑警寧澤控漠,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站悬钳,受9級特大地震影響润脸,放射性物質(zhì)發(fā)生泄漏柬脸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一毙驯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧灾测,春花似錦爆价、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秦爆,卻和暖如春序愚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背等限。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工爸吮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人望门。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓形娇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親筹误。 傳聞我的和親對象是個殘疾皇子桐早,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容