Android 빠른 점프 도구

11624 단어 androidgithubkotlin





자동 페이지



버전 번호 v1.0.2

Kotlin 및 Java를 지원하는 빠른 점프 도구
  • 직렬화 가능한 대형 객체 전송 지원
  • 다중 프로세스 활동 점프 지원

  • 코드 주소: Version number v1.0.2

    문서 주소: Version number v1.0.2

    중국어 문서 주소: 中文文档地址 版本 v1.0.2

    버전 번호 v1.0.8

    업데이트 콘텐츠: (kotlin용으로 특별히 설계된 빠른 점프 도구. 프로젝트가 Java 언어만 지원하는 경우 이 버전을 사용하지 마세요.)
  • 코드가 kotlin 구문을 채택함
  • 기본값 기능 지원
  • 직렬화 가능한 데이터 전송이 더 이상 지원되지 않지만 대신 성능이 더 좋은 Parcelable 대형 객체 전송이 사용됩니다
  • .
  • 다중 프로세스 활동 점프 지원
  • 메모리 점유 감소 및 재활용 가능한 메모리 개선

  • 자동 페이지 v1.0.8



    괜찮다고 생각하시면 별점 드려요

    Android 활동 쉬운 점프
    中文说明
    日本語

    액티비티 또는 프래그먼트가 값을 전달하기 위해 점프할 때마다 매개변수 전달에 지쳤습니까?

    데이터가 너무 많으면 좋은 디자인이라도 코드가 형편없게 됩니다. 그래서 오늘은 도구를 추천합니다

    원래 점프와 비교

    비교:


  • 점프 모드 비교

  •  Intenti=new Intent(this,MainActivity.class);
     startActivity(i);
    



    ApMainActivity.newInstance().start(this)
    
    



        //send
        Intenti=new Intent(this,MainActivity.class);
        Bundle bundle = new Bundle();
        bundle.putInt("message", "123");
        i.putExtra("Bundle", bundle);
        startActivity(i);
        //back
        String  s=bundle.getString("message","");
    
    




        //send
        ApMainActivity.newInstance().apply {
                        message = "123"
                    } .start(this)
        //back
        AutoJ.inject(this);
    


    소포 발송

        //send
         ApAllDataActivity.newInstance().apply {
                        message = "123"
                        myData = MyData("hfafas",true,21)
                    } .start(this)
        //back
        AutoJ.inject(this);
    


    자동 페이지



    Android 활동 쉬운 점프

    ~ 해야 하다


  • androidx
  • 코틀린 및 자바

  • 지원 전송 유형



    번들에서 지원하는 모든 기본 유형(ShortArray 제외)

    다음 유형이 모두 지원됩니다. 유형이 다음이 아닌 경우 kapt 오류가 보고될 수 있습니다.

    
        :Parcelable
    
        String
    
        Long
    
        Int
    
        Boolean
    
        Char
    
        Byte
    
        Float
    
        Double
    
        Short
    
        CharSequence
    
        CharArray
    
        IntArray
    
        LongArray
    
        BooleanArray
    
        DoubleArray
    
        FloatArray
    
        ByteArray
    
        ArrayList<Int>
    
        ArrayList<String>
    
        ArrayList<CharSequence>
    
        ArrayList<:Parcelable>
    
        Array<:Parcelable>
    




    ###사용

    5월 1일 이후 jcenter 서비스가 종료되므로 프로젝트는 jitpack으로 마이그레이션되며 동시에 버전 번호는 1.0.8로 변경됩니다.

    프로젝트 : build.gradle

    buildscript {
        repositories {
            maven { url 'https://www.jitpack.io' }
        }
    


    구성
    당신의 모듈
    코 틀린 캡
    프로젝트에서 @Parcelize 주석을 지원해야 합니다. 즉, 'kotlin Android extensions' 애플리케이션 플러그인을 추가해야 합니다.

    apply plugin: 'kotlin-android-extensions'
    apply plugin: 'kotlin-kapt'
    
    android {
    androidExtensions {
            experimental = true
        }
    }
    
    
        kapt com.github.smartbackme.AutoPage:autopage-processor:1.0.8
        implementation com.github.smartbackme.AutoPage:autopage:1.0.8
    


    가리키다
  • 클래스 또는 필드의 @AutoPage
  • AP 접미사

  • 코틀린:
  • 파일에는 @JvmField 및 @AutoPage
  • 가 있어야 합니다.
  • onCreate 메서드에 AutoJ.inject(this)가 있어야 함

  • 자바:
  • 파일에는 @AutoPage
  • 가 있어야 합니다.
  • onCreate 메서드에 AutoJ.inject(this)가 있어야 함


  • ###활동 사용

    예시 1



    간단한 활동으로 이동

    @AutoPage
    class SimpleJump1Activity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_simple_jump1)
        }
    }
    


    그 다음에

    ApSimpleJump1Activity.newInstance().start(this)
    
    


    예 2



    활동 및 메시지로의 간단한 이동

    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
        }
    }
    


    그 다음에

                ApMainActivity2.newInstance().apply {
                    message = "123"
                } .start(this)
    


    예 3:



    활동 및 결과로 이동

    @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()
        }
    }
    


    그 다음에

                ApSimpleJumpResultActivity.newInstance().apply {
                    requestCode = 1
                }.start(this)
    


    예 4:



    소포 가능

    포조
    '''
    @파셀라이즈
    데이터 클래스 MyData(var message:String,var hehehe: Boolean,var temp :Int):Parcelable
    '''

    class AllDataActivity : AppCompatActivity() {
    
        @AutoPage
        @JvmField
        var myData:MyData? = null
        @AutoPage
        @JvmField
        var message:String? = "this is default value"
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
    
            setContentView(R.layout.activity_all_data)
            AutoJ.inject(this)
    
    
            Toast.makeText(this,myData?.toString()+message,Toast.LENGTH_LONG).show()
        }
    }
    


    그 다음에

                ApAllDataActivity.newInstance().apply {
                    message = "123"
                    myData = MyData("hfafas",true,21)
    


    예 5:



    기본값

    class DefaultValueActivity : AppCompatActivity() {
    
        @AutoPage
        @JvmField
        var message:String? = "this is default value"
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_default_value)
            AutoJ.inject(this)
    //        var args = intent.getParcelableExtra<ArgsData>("123")
            findViewById<Button>(R.id.button6).text = message
        }
    }
    


    그 다음에

                ApDefaultValueActivity.newInstance().apply {
                } .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
    
        }
    
    }
    
    


    그 다음에

    ApFragmentSimpleFragment.newInstance().apply {
                        message = "123"
                    }.build()
    


    문서



    기다리다...

    특허




                       MIT License
    
    Copyright (c) 2021 zhonghua
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
    
    

    좋은 웹페이지 즐겨찾기