Siddhpuraアミット:
私はデータバインディングでシークバーを使用し、以下の私のコードでいます
<data>
<variable
name="generatePasswordModel"
type="android.account.model.GeneratePasswordModel" />
</data>
<SeekBar
android:id="@+id/sbPasswordLength"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:onProgressChanged="@{generatePasswordModel.onValueChanged()}"
android:max="20"
android:min="4" />
そして、モデルクラスは以下の通りです
data class GeneratePasswordModel(
private var seekValue: String,
private var seekDisplay: String
) : BaseObservable() {
var mSeekDisplay: String
@Bindable get() = seekDisplay
set(value) {
seekDisplay = value
notifyPropertyChanged(BR.mSeekDisplay)
}
fun onValueChanged(seekBar: SeekBar, progresValue: Int, fromUser: Boolean) {
mSeekDisplay = progresValue.toString()
}
}
しかし、私は、ビルドしながら、APKを、次のエラーを取得しています
ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1/Users/amitsiddhpura/Documents/.../app/build/generated/source/kapt/debug/.../android/DataBinderMapperImpl.java:18: error: cannot find symbol
import android.databinding.ActivityGeneratePasswordBindingImpl;
22:40:06.432 [ERROR] [system.err] ^
22:40:06.432 [ERROR] [system.err] symbol: class ActivityGeneratePasswordBindingImpl
ジェイコブコリンズ:
:この質問にトップの答えをチェックシークバーデータバインディングエラー
あなたのXMLで引数を指定する必要があると表示されます。
android:onProgressChanged="@{(seekBar, value, fromUser)->generatePasswordModel.onValueChanged(seekBar, value, fromUser)}}
しかし、あなたが実際に使用していないため、seekBar
またはfromUser
あなたのKotlinコードで、あなたはとてもあなたのような関数の定義を変更できます。
fun onValueChanged(progresValue: Int) {
mSeekDisplay = progresValue.toString()
}
そして、XMLは次のようになります。
android:onProgressChanged="@{(seekBar, value, fromUser)->generatePasswordModel.onValueChanged(value)}}