問題タブ [kotlin-android-extensions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7690 参照

java - xml kotlin androidの解析

私はこのようなxmlを持っています:

そして今、私はレトロフィットでkotlinを学んでいます。xml を解析するためのライブラリが含まれていますが、この xml を解析するためのオブジェクトを作成する方法がわかりません。私はオブジェクトを持っています:

しかし、私はエラーがあります:

rg.simpleframework.xml.core.ConstructorException: デフォルトのコンストラクターは、クラス ac のメソッド 'aries' で読み取り専用の @org.simpleframework.xml.Element(data=false, name=aries, required=true, type=void) を受け入れることができません.kotlintest.モデル。

更新

私はJavaでコードを書きました:

そしてそれはうまくいきます、そして私はkotlinに変換します

しかし、私は同じ問題を抱えています((((

0 投票する
1 に答える
208 参照

android - ViewGroup をフラグメント ラッパーとして拡張する

RelativeLayout を拡張してフラグメント デコレータを作成しています。

このような:

さて、RelativeLayout にいくつかの画像を追加して、常にフラグメントの上に配置したいので、次のようにしました。

}

しかし、私のアクティビティが開始されると、フラグメントは追加されたビュー (mMarkImageView と mShadowView) の上に置かれます。これは、希望とは正反対です。

では、プログラムでビューをビューグループの最後の位置に配置するにはどうすればよいでしょうか?

どんな助けでも大歓迎です!

0 投票する
1 に答える
5284 参照

java - クラス「kotlin.jvm.internal.DefaultConstructorMarker」が見つかりませんでした

私は現在、Kotlin でコーディングされた Android アプリに取り組んでいます。昨日まではすべて問題ありませんでしたが、ある時点で logcat にこのエラーが発生し始めました。これが発生すると、アプリのコンテンツが表示されません。長い説明は次のとおりです。

参照されているクラスは Kotlin で記述されており、エラーが発生する前に変更されていません。

編集

問題を引き起こすクラスは次のとおりです。

0 投票する
3 に答える
1512 参照

arrays - 配列を使用した Kotlin での安全な呼び出しは混乱しています

array: があり、次のコードでnotes: Array<KeyValueNote>?Kotlin を使用しています。1.0.5-2

私が欲しい

しかし、いくつかの変更点があります

私の質問

  1. The condition 'it != null' is always true代替案 1&2 に検査メモがあることがわかりますが、検査は正しいですか? の非 null アイテムのみを にnotes配置できるようにしたいためpayloadJsonです。
  2. filterNotNull()?.代替案 3 では、にSafe? Call があることがわかります。、ソース コードを確認したため、結果filterNotNull()が null になることはありませんが?、そこを削除するとコンパイルに失敗します。
0 投票する
1 に答える
2987 参照

android - インターフェイスのプロパティはバッキング フィールドを持つことができません

私はコトリンを学んでいます。私のコードは次のとおりです。

しかし、それを変更して、次のようなプロパティのアクセサーを提供しようとすると:

次のエラーでコンパイルされません: Property in interface cannot have a backing field

ドキュメントhereから、kotlin インターフェイスは実装を提供でき、アクセサーを持つプロパティを持つことができます。コンパイルが失敗するのはなぜですか?

エラーを理解できません。それは何と言っていますか?誰でも簡単に説明できますか?

0 投票する
1 に答える
470 参照

java - registerReceiver() は、オーバーロードされたメソッドのエラーを表示します

Android プロジェクトで Kotlin を試していました。私のアクティビティには、ネットワーク変更イベントのブロードキャスト レシーバーがあります。コードは次のとおりです。

BaseActivity.kt

NetworkChangeReceiver.kt

問題はありません。しかし、私のkotlinプラグインは次のエラーを表示します:

次の関数はいずれも、引数を指定して呼び出すことはできません

ここに画像の説明を入力

最初の引数に指定された引数は正しい ASAFIK です。私は Kotlin の専門家ではなく、楽しみのために学んでいます。これは Kotlin の意図した動作ですか、プラグインのエラーですか、それとも何か不足していますか? 誰でも説明できますか?

0 投票する
3 に答える
3389 参照

android - Kotlin の合成プロパティの競合

私はコトリンが初めてです。他の非常に興味深いものの中でも、ドキュメンテーション によると、を必要とせずにアクティビティのビューを使用できるAndroid 拡張機能を見つけましたfindViewById

実際には、インポートに次の行を追加するだけで非常にうまく機能します。

問題は、2 つの異なるレイアウトに同じ id (つまり、合成プロパティの同じ名前) を持つウィジェットが含まれている場合です。
たとえばTextView、 id を持つ 2 つの異なる がありtxtTitleます。最初のものはアクティビティにあり、2 つ目はアダプター内で使用されるレイアウトに属しているとします。

最初の TextView (アクティビティのもの) でメソッドを呼び出そうとすると、呼び出しが別のビューで行われるかのように、期待される結果が表示されません。これの確認として、 を呼び出すと、予想されたものではなくtxtTitle.parent、他の親と兄弟が表示されます。txtTitle

私は何か間違ったことをしていますか?この問題を回避するために私が見つけた唯一の方法は、すべてのレイアウトで別の名前を使用するか、引き続き使用するfindViewByIdことですが、この言語機能を無駄にするのは残念です...