Ввод OTP в Kotlin - библиотека android-otpview-pinview - PullRequest
0 голосов
/ 01 ноября 2019

Я использую указанную ниже библиотеку в своем приложении Android для предоставления пользовательского интерфейса для OTP:

https://github.com/mukeshsolanki/android-otpview-pinview

Успешно, добавлена ​​зависимость, как показано ниже:

implementation 'com.github.mukeshsolanki:android-otpview-pinview:2.1.0'

Также, добавлено ниже строки:

maven { url "https://jitpack.io" }

Использование его в макете, как показано ниже:

       <com.mukesh.OtpView
        android:id="@+id/otp_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:inputType="number"
        android:itemBackground="@drawable/drawable_otp_entry"
        android:textColor="@android:color/white"
        app:itemCount="4"
        app:lineColor="@color/colorPrimary"
        app:viewType="none" />

Теперь, на стороне kotlin в моей деятельности я делаю так:

class MainActivity : AppCompatActivity() {
var otpView: OtpView? =null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    otpView = findViewById(R.id.otp_view)
    otpView.setListener(object:OnOtpCompletionListener() {
        override fun onOtpCompleted(otp:String) {
            // do Stuff
            Log.d("onOtpCompleted=>", otp)
        }
    })
    }
}

Ошибка в строке: otpView.setListener(object:OnOtpCompletionListener() {, говоря Неразрешенная ссылка: setListener и Класс не имеет конструктора

, использующегоКотлин и библиотека могут в Java.

В чем может быть проблема?

1 Ответ

1 голос
/ 01 ноября 2019

SetListener больше не поддерживается, я думаю, попробуйте использовать

 otpView = findViewById(R.id.otp_view)
    otpView!!.setOtpCompletionListener(object :OnOtpCompletionListener
    {
        override fun onOtpCompleted(otp: String?) {

        }

    }) 
...