我必須在我的應用程式上實作OTP驗證,我只想從上一個活動中獲得手機號碼,并在我點擊下一個按鈕時將其設定為下一個活動的文本視圖,從活動1到活動2。
我想把手機號碼放在請輸入已發送的otp下面。 第一次嘗試。我呼叫了ObjectSingleton.mobileNum,因為它帶有手機號碼,然后我用mobileNum.setText(ObjectSingleton.mobileNum),但它沒有作業。
我在第一個活動中的代碼,其中意圖發生在下一個活動; 下面是第2個Acitivy的代碼,我想改變手機號碼顯示的文本 對于你的參考,這是上述圖片的XML檔案,我應該把手機號碼放在哪里。
我是Kotlin/Android開發的新手,希望有人能幫我解決這個問題。
#JUniorDEV 更新:我向你分享我的MobileNumberPresenter代碼: CodePudding 在OtpInterface.MobileNumberViews中
將第二個引數作為字串添加到ifSuccess中 在OtpInterface.MobileNumberViews>中,將第二個引數作為字串添加到ifSuccess中。
在MobileNumberPresenter 改變mobileViews?.ifSuccess(bytes.data)為mobileViews?.ifSuccess(bytes.data, mobile) 而你的ifSuccess方法將被改變為 而在OtpValidationActivity val mobileNum = arguments?.getString("MOBILE_NUMBER") uj5u.com熱心網友回復: 將第1個活動的代碼更新為 現在在第二個活動的setContentView(R.layout.activity_otp_verification)之后
添加這一行: 希望這能起作用class MobileNumberActivity : AppCompatActivity(), OtpInterface. MobileNumberViews {
lateinit var presenterMobileNumber:MobileNumberPresenter
override fun onCreate(servedInstanceState: Bundle? ){
super.onCreate(s savedInstanceState)
setContentView(R.layout.activity_mobile_number)
presenterMobileNumber = MobileNumberPresenter()
presenterMobileNumber.mobileViews=this
close_icon2.setOnClickListener {
完成()
}
nxtBtn.setOnClickListener {
if (inputText.text.isNullOrEmpty() } {
inputText.error = "請輸入有效的手機號碼。"。
} else if (inputText.text.toString().length != 10) {
inputText.error = "請輸入有效的手機號碼"。
} else{
val mobile = inputText.text.toString()
presenterMobileNumber.otpMobile(mobile)
}
}
}
override fun ifFailed(msg: String) {
errorMsg.setText(msg)
}
override fun ifSuccess(res: OtpData) {
errorMsg.setText("已發送!")
var intent = Intent(this, OtpValidationActivity::class.java)
startActivity(intent)
}
class OtpValidationActivity 。AppCompatActivity(), OtpValidateInterface. OtpValidateViews {
lateinit var otpPresenter: 呼叫中心
override fun onCreate(servedInstanceState: Bundle? ){
super.onCreate(s savedInstanceState)
setContentView(R.layout.activity_otp_verification)
otpPresenter = OtpPresenter()
otpPresenter.otpValidationViews = 這個。
verifyOtpBtn.setOnClickListener {
if (otp_input.text.isNullOrEmpty()) {
otp_input.error = "請輸入OTP。"。
} else{
val otpNumber = otp_input.text.toString()
otpPresenter.otpValidate(ObjectSingleton.mobileNum,otpNumber)
}
}
}
override fun validateFailed(res: String) {
resend.setText("Failed")
}
override fun validateSuccess(msg: OtpValidationData) {
resend.setText("成功")
}
<?xml version="1.0"/span> encoding="utf-8"/span>?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"?
xmlns:app="http://schemas.android.com/apk/res-auto"/span>
xmlns:tools="http://schemas.android.com/tools"/span>
android:layout_width="match_parent"/span>
android:layout_height="match_parent"/span>
>
<LinearLayout
android:layout_width="match_parent"/span>
android:layout_height="wrap_content"/span>
android:background="@drawable/rectangle"/span>
app:layout_constraintEnd_toEndOf="parent"。
app:layout_constraintStart_toStartOf="parent"。
app:layout_constraintTop_toTopOf="father" />
<LinearLayout
android:id="@ id/linearLayout6"/span>
android:layout_width="372dp"/span>
android:layout_height="wrap_content"/span>
android:background="@drawable/otpbg"/span>
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="father"。
app:layout_constraintEnd_toEndOf="parent"。
app:layout_constraintHorizontal_bias="0.487"。
app:layout_constraintStart_toStartOf="parent"。
app:layout_constraintTop_toTopOf="parent"。
app:layout_constraintVertical_bias="0.041"/span>>
<LinearLayout
android:id="@ id/linearLayout5"。
android:layout_width="match_parent"。
android:layout_height="wrap_content"/span>
android:gravity="center"/span>
android:orientation="vertical""parent"。
app:layout_constraintStart_toStartOf="parent"。
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"/span>
android:layout_height="wrap_content"/span>
android:layout_marginTop="@dimen/_30sdp"/span>
android:text="OTP驗證"。
android:textColor="@color/reply_black_800"/span>
android:textSize="@dimen/_22sdp"/span>
app:layout_constraintEnd_toEndOf="parent"。
app:layout_constraintHorizontal_bias="0.498"。
app:layout_constraintStart_toStartOf="parent"。
app:layout_constraintTop_toTopOf="father">
</TextView>
<TextView
android:layout_width="wrap_content"。
android:layout_height="wrap_content"/span>
android:text="請輸入已發送至的OTP">
</TextView>
<TextView
android:id="@ id/mobileNum"/span>
android:layout_width="wrap_content"/span>
android:layout_height="wrap_content"/span>
android:layout_marginTop="@dimen/_22sdp"/span>
android:layout_marginBottom="@dimen/_30sdp"/span>
android:text="@string/_63"/span>
android:textColor="@color/colorPrimary"
android:textSize="@dimen/_19sdp"/span>
android:textStyle="bold">
</TextView>
</LinearLayout>
<com.mukesh.OtpView
android:id="@ id/otp_input"/span>
android:layout_width="267dp"/span>
android:layout_height="48dp"/span>
android:layout_gravity="center"/span>
android:layout_marginLeft="@dimen/_10sdp"/span>
android:layout_marginRight="@dimen/_10sdp"。
android:inputType="number"/span>
android:textAppearance="?attr/textAppearanceHeadline5"。
android:textColor="@android:color/black"/span>
app:OtpItemCount="6"。
app:OtpItemWidth="@dimen/_30sdp"/span>
app:OtpLineColor="@color/reply_black_800"
app:OtpViewType="line" />
<TextView
android:id="@ id/resend"/span>
android:layout_width="match_parent"/span>
android:layout_height="wrap_content"。
android:layout_marginTop="@dimen/_19sdp"/span>
android:gravity="center"/span>
android:textSize="@dimen/_14sdp"/span>
android:text="@string/didn_t_recieve_the_code_resend_code"/span>
app:layout_constraintBottom_toBottomOf="parent"。
app:layout_constraintEnd_toEndOf="parent"。
app:layout_constraintHorizontal_bias="0.0"。
app:layout_constraintStart_toStartOf="parent"。
app:layout_constraintTop_toBottomOf="@ id/otp_view"。
app:layout_constraintVertical_bias="0.039"。
android:paddingBottom="@dimen/_30sdp"/>
</LinearLayout>
<androidx.appcompat.widget.AppCompatButton
android:id="@ id/verifyOtpBtn"/span>
android:layout_width="378dp"/span>
android:layout_height="42dp"/span>
android:background="@drawable/radius_btn"/span>
android:backgroundTint="@color/colorPrimary"/span>
android:text="Next"/span>
android:textAllCaps="false"/span>
android:textColor="@color/white"/span>
app:layout_constraintBottom_toBottomOf="parent"。
app:layout_constraintEnd_toEndOf="parent"。
app:layout_constraintHorizontal_bias="0.484"。
app:layout_constraintStart_toStartOf="parent"。
app:layout_constraintTop_toBottomOf="@ id/linearLayout6"
app:layout_constraintVertical_bias="0.117" />
</androidx.constraintlayout.widget.ConstraintLayout>
var mobileViews:OtpInterface.MobileNumberViews? = null
override fun otpMobile(mobile: String){
Fuel.post("https://api.staging.riderko.com/riderko_be/public/api/riderSendRegisterOtp"/span>, listOf(
"mobile" to mobile
).timeout(5000)
.header("接受", "應用/json")
.responseObject<OtpResponse>{request, response, result ->
when (result) {
is Result.Failure -> {
mobileViews?.ifFailed(result.error.response.statusCode.toString() )
}
is Result.Success -> { mobileViews?
val (byte, error) = result
if (bytes != null) {
val status = bytes.success
if (status){
mobileViews?.ifSuccess(bytes.data)
}else{
mobileViews?.ifFailed(bytes.message)
}
}
}
}
}
}
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
override fun ifSuccess(res: OtpData, mobileNum: String) {
errorMsg.setText("已發送!")
var intent = Intent(this, OtpValidationActivity::class.java)
intent.putExtra("MOBILE_NUMBER",mobileNum)
startActivity(intent)
} override fun ifSuccess(res。OtpData) {
errorMsg.setText("已發送!")
var intent = Intent(this, OtpValidationActivity::class.java)
startActivity(intent)
intent.putExtra("MobileNum", mobile)
}
val MobNo = intent.getExtra("MobileNum"/span>)
mobileNum.text = MobNo
在MobileNumberActivity里面的ifSuccess()在你做startActivity(intent)之前做intent.putExtra("IDENTIFER",mobileNum)
現在在第2個活動中簡單地做val mobNO = intent.getStringExtra("IDENTIFER")/code>
現在將mobNo分配給所需的textView。
這有助于在活動之間傳遞資料。
uj5u.com熱心網友回復:
我能夠簡單地通過呼叫ObjectSingleton.mobNum分配給一個變數并將其顯示在視圖中來解決這個問題。我剛剛了解到,一旦objectsingleton被分配到,該值將被帶到你的應用程式的任何部分,當你關閉你的應用程式時,這個值將被自動洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/313076.html
標籤:

