Android 簡(jiǎn)單跳轉(zhuǎn)頁(yè)面工具的實(shí)例詳解
事情起源
activity 或者 fragment 每次跳轉(zhuǎn)傳值的時(shí)候,你是不是都很厭煩那種,參數(shù)傳遞。
那么如果數(shù)據(jù)極其多的情況下,你的代碼將苦不堪言,即使在很好的設(shè)計(jì)下,也會(huì)很難受。那么今天我給大家推薦一個(gè)工具
和咱原生跳轉(zhuǎn)進(jìn)行比較
比較:
1.跳轉(zhuǎn)方式比較
Intenti=new Intent(this,MainActivity.class); startActivity(i);
vs
ApMainActivity.getInstance().start(this);
//發(fā)送
Intenti=new Intent(this,MainActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("message", "123");
i.putExtra("Bundle", bundle);
startActivity(i);
//接收
String s=bundle.getString("message",""); vs
//發(fā)送
ApMainActivity.getInstance().setMessage("123").start(this);
//接收
AutoJ.inject(this);AutoPage
github地址 https://github.com/smartbackme/AutoPage
如果覺(jué)得不錯(cuò) github 給個(gè)星
Android 容易的跳轉(zhuǎn)工具
注意事項(xiàng):必須有如下兩個(gè)要求 androidxkotlin & java
#########使用#########
project : build.gradle 項(xiàng)目的gradle配置
buildscript {
repositories {
maven { url 'https://dl.bintray.com/297165331/AutoPage'}
}在你的每個(gè)需要做容易跳轉(zhuǎn)的模塊添加如下配置
你的項(xiàng)目必須要支持 kapt
kotlin kapt
apply plugin: 'kotlin-kapt' implementation 'com.kangaroo:autopage:1.0.2' kapt 'com.kangaroo:autopage-processor:1.0.2'
重點(diǎn)
@AutoPage 只能在字段或者類上標(biāo)注Ap 作為前綴,為你快速跳轉(zhuǎn)
kotlin:
字段必須標(biāo)注 @JvmField 和 @AutoPageonCreate 中 在你的需要跳轉(zhuǎn)的頁(yè)面加入 AutoJ.inject(this)
java:
字段必須標(biāo)注 @AutoPageonCreate 中 在你的需要跳轉(zhuǎn)的頁(yè)面加入 AutoJ.inject(this)
######### Activity 中使用#########
例1
簡(jiǎn)單的跳轉(zhuǎn)
@AutoPage
class SimpleJump1Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_simple_jump1)
}
}之后調(diào)用
ApSimpleJump1Activity.getInstance().start(this)
例2
簡(jiǎn)單的跳轉(zhuǎn)并且?guī)?shù)
class MainActivity2 : AppCompatActivity() {
@AutoPage
@JvmField
var message:String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
AutoJ.inject(this)
findViewById<TextView>(R.id.text).text = message
}
}之后調(diào)用
ApMainActivity2.getInstance().setMessage("123").start(this)例3:
跳轉(zhuǎn)帶有result
@AutoPage
class SimpleJumpResultActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_simple_jump_result)
}
override fun onBackPressed() {
var intent = Intent()
intent.putExtra("message","123")
setResult(RESULT_OK,intent)
super.onBackPressed()
}
}之后調(diào)用
ApSimpleJumpResultActivity.getInstance().requestCode(1).start(this)
####### 在 fragment 中使用 #########
class FragmentSimpleFragment : Fragment() {
@AutoPage
@JvmField
var message:String? = null
companion object {
fun newInstance() = FragmentSimpleFragment()
}
private lateinit var viewModel: SimpleViewModel
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return inflater.inflate(R.layout.simple_fragment, container, false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
AutoJ.inject(this)
viewModel = ViewModelProvider(this).get(SimpleViewModel::class.java)
view?.findViewById<TextView>(R.id.message)?.text = message
}
}之后調(diào)用
ApFragmentSimpleFragment.getInstance().setMessage("134").build()到此這篇關(guān)于Android 簡(jiǎn)單跳轉(zhuǎn)頁(yè)面工具的文章就介紹到這了,更多相關(guān)Android跳轉(zhuǎn)頁(yè)面工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android實(shí)現(xiàn)支付寶支付密碼輸入界面
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)支付寶支付密碼輸入界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
Android入門(mén)之AlertDialog用法實(shí)例分析
這篇文章主要介紹了Android入門(mén)之AlertDialog用法,對(duì)Android初學(xué)者有很多的借鑒學(xué)習(xí)之處,需要的朋友可以參考下2014-08-08
Android自定義控件之開(kāi)關(guān)按鈕學(xué)習(xí)筆記分享
這篇文章主要為大家分享了Android自定義開(kāi)關(guān)按鈕的學(xué)習(xí)筆記,內(nèi)容豐富,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
Android使用CardView實(shí)現(xiàn)圓角對(duì)話框
這篇文章主要為大家詳細(xì)介紹了Android使用CardView實(shí)現(xiàn)圓角對(duì)話框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
Android RecyclerView實(shí)現(xiàn)吸頂動(dòng)態(tài)效果流程分析
RecyclerView是Android一個(gè)更強(qiáng)大的控件,其不僅可以實(shí)現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實(shí)現(xiàn)數(shù)據(jù)縱向滾動(dòng),也可以實(shí)現(xiàn)橫向滾動(dòng)(ListView做不到橫向滾動(dòng))。接下來(lái)講解RecyclerView的用法2022-12-12

