Tag: kotlin android extensions

不能使用Kotlin扩展function添加片段

我有一个Kotlin扩展function来添加另一个Kotlin文件中的一个片段 fun Fragment.addFragment(tag: String?, id: Int, fragmentManager: FragmentManager) { // will take care of adding the fragment. val fragmentTransaction = fragmentManager.beginTransaction() fragmentTransaction.add(id, this, tag) fragmentTransaction.addToBackStack(tag) fragmentTransaction.commit() } 但是,每当我使用该扩展function添加一个片段,然后我得到这个崩溃 java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.support.v4.app.Fragment.setNextAnim(int)’ on a null object reference 我正在使用这样的扩展function: MyFragment().addFragment(“MyFragment”, R.id.frame, fragmentMaganer) 上述语句后,如果我试图调试我的代码,那么它的执行成功,直到 fragmentTransaction.commit() 但在此之后,在我的activity的onStart()方法,我面临着这个NullPointerException问题 但是,如果我直接在Activity中使用相同的代码: val myFragment = MyFragment() val fragmentTransaction […]

如何使用Android中的Kotlin从NavigationView的headerLayout中指定的布局访问视图

我想要访问NavigationView的headerLayout内包含的TextView。 是否有可能使用Kotlin android扩展来访问视图? 我没有使用此方法,但TextView(这里txtName)始终为空。 这是我的activity_main.xml nav_header_splash.xml 在MainActivity.kt我已经导入 import kotlinx.android.synthetic.main.nav_header_splash.* 在Activity类的onCreate()中设置文本类似 txtName.text = “Sample Code” 应用程序文件夹的构建 apply plugin: ‘kotlin-android-extensions’ 建立我的项目 classpath “org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version” 我的代码有错吗? 请帮忙。 我是Kotlin的新人。

如何通过意图在kotlin传递自定义对象

fun launchNextScreen(context: Context, people: People): Intent { val intent = Intent(context, NextScreenActivity::class.java) intent.putExtra(EXTRA_PEOPLE, (Parcelable) people) //intent.putExtra(EXTRA_PEOPLE, people as Parcelable) //intent.putExtra(EXTRA_PEOPLE, people) // tried above all three ways return intent } 尝试上面的代码,通过意图使用kotlin传递人类types的人物,但得到错误。 请帮我解决这个问题。

a.run是否和kotlin中的.run一样?

如果一个variables在Kotlin中是空的,我们需要做一个安全调用,或者。 用于显式调用。 当我试图从可变空间variables中使用一些扩展(比如run或let)时,我注意到.run是好的,IDE没有抱怨,通常我会收到一个警告,提醒我这不是一个安全调用。 是否对kotlin中的.run {}和.run {}有所影响? 如果我使用.run {},它被认为是无效的安全吗? var a? = “…” a?.run{} a.run{}

建设失败Kotlin kapt和房间

当我尝试使用Kotlin的架构组件时,我得到一个奇怪的编译器错误。 Gradle输出: Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar] Configuration on demand is an incubating feature. Configuration ‘compile’ in project ‘:app’ is deprecated. Use ‘implementation’ instead. Configuration ‘androidTestCompile’ in project ‘:app’ is deprecated. Use ‘androidTestImplementation’ instead. Configuration ‘testCompile’ in project ‘:app’ is deprecated. Use ‘testImplementation’ instead. ‘kapt.generateStubs’ is not used by the ‘kotlin-kapt’ plugin ‘kapt.generateStubs’ is not […]

为什么使用Kotlin“by”通过匿名子类?

我目前正在观看来自Google I / O 2017的video ,并遇到了Kotlin by特性。 下面的例子是为了避免在实际上只关心其中一个接口的时候实现接口的每一种方法。 by实施(从video): class MyListener : TransitionListener by EmptyTransitionListener { override fun onTransitionStart(transition: Transition) { } } object EmptyTransitionListener : TransitionListener { override fun onTransitionEnd(transition: Transition) {} override fun onTransitionResume(transition: Transition) {} override fun onTransitionPause(transition: Transition) {} override fun onTransitionCancel(transition: Transition) {} override fun onTransitionStart(transition: Transition) {} } window.sharedElementEnterTransition.addListener(MyListener()) […]

如何在Kotlin中编写扩展函数?

我只是想将我的正常function转换为Kotlin的扩展function。 这是我的function, fun hideKeyboard(activity: Activity) { if (activity != null) { activity.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_SATE_HIDDEN) val view: View = activity.currentFocus if (true) run { val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager imm.hideSoftInputFromWindow(view.windowToken, 0) } } }

如何在kotlin运行时传递db名称

我已经尝试在kotlin中创建DatabaseOpenHelper。 它不允许我在运行时传递db名称。 class DatabaseOpenHelper (context: Context) : SQLiteOpenHelper(context, “mydb.db”, null, 4) { val TAG = javaClass().getSimpleName() val TABLE = “logs” companion object { public val ID: String = “_id” public val TIMESTAMP: String = “TIMESTAMP” public val TEXT: String = “TEXT” } ….. other methods } 请帮忙。

Varargs Kotlin Java互操作不正常

对于makeSceneTransitionAnimation,有两个静态函数 public static ActivityOptionsCompat makeSceneTransitionAnimation(Activity activity, View sharedElement, String sharedElementName) 和 public static ActivityOptionsCompat makeSceneTransitionAnimation(Activity activity, Pair… sharedElements) 第一个函数调用在Kotlin中正常工作,但在调用第二个函数时,这两个调用都会返回错误 val imageTransition = Pair(imageView, imageView.getTransitionName()); val textTransition = Pair(textView, textView.getTransitionName()); val transitionList = Array(2, { imageTransition }); transitionList[1] = textTransition; val options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, *transitionList); 和 val imageTransition = Pair(imageView, imageView.getTransitionName()); val textTransition = Pair(textView, textView.getTransitionName()); […]

Kotlin将函数扩展的types函数 – 从Java中调用?

我试图使用具体化types作为扩展function的函数,但我不认为这是可能的,因为我检查生成的字节码后,我发现方法签名是私人的,任何解决方法,使其公开? CommonExtensions.kt inline fun Context.startActivity() { val intent = Intent(this, T:: class.java) startActivity(intent) } fun View.visible() { visibility = View.VISIBLE } Kotlin字节代码: private final static startActivity(Landroid/content/Context;)V @Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0 … 客户代码: Kotlin文件 override fun showMessageEmptyOfferFeeds() { mOfferFeedsWarning.visible() // “visible()” extension func RESOLVED } Java文件 showProfileDetailsUi(){ startActivity() //”startActivity()” extension func NOT RESOLVED }