Как перейти к новой активности после успешного входа?

Это мой логин

class MainActivity : AppCompatActivity() {
//edittext
private var edemail: EditText? = null
private var edpassword: EditText? = null
override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)


//getting it from xml
edemail = findViewById<EditText>(R.id.edtemail)
edpassword = findViewById<EditText>(R.id.edtpassword)
findViewById<Button>(R.id.btn_login).setOnClickListener {
loginfun()
//            val intent = Intent(applicationContext, HelloActivity::class.java)
//            startActivity(intent)
//            finish()
}

findViewById<TextView>(R.id.txtregister).setOnClickListener {
val intent = Intent(applicationContext, RegisterActivity::class.java)
startActivity(intent)
finish()
}





}

private fun loginfun(){
//getting the record values
val email = edemail?.text.toString()
val password = edpassword?.text.toString()
var test:Boolean=false
//creating volley string request
val stringRequest = object : StringRequest(Request.Method.POST,
EndPoints.URL_GET_USER,
Response.Listener<String> { response ->
try {
val obj = JSONObject(response)
test = obj.getBoolean("error")
Toast.makeText(applicationContext, obj.getString("message"),
Toast.LENGTH_LONG).show()
} catch (e: JSONException) {
e.printStackTrace()
}
},
object : Response.ErrorListener {
override fun onErrorResponse(volleyError: VolleyError) {
Toast.makeText(applicationContext, volleyError.message,
Toast.LENGTH_LONG).show()
}
}) {
@Throws(AuthFailureError::class)
override fun getParams(): Map<String, String> {
val params = HashMap<String, String>()
params.put("email", email)
params.put("password", password)
return params
}
}

//adding request to queue
VolleySingleton.instance?.addToRequestQueue(stringRequest)
go(test)

}
private fun go(state:Boolean)

{if(state == true){val intent = Intent(applicationContext, HelloActivity::class.java)
startActivity(intent)
finish() }

}

}

Я хочу перейти к HelloActivity, если вход выполнен успешно. Вы можете помочь мне сделать это?

Это не работает для меня, проблема в том, что значение теста не может быть изменено в запросе.

Как это может быть переназначено снова с ошибкой boolean что я получил из моего файла php. Все остальное работает хорошо.

-1

Решение

1- Вы должны удалить звонок для go(test) отсюда:

//adding request to queue
VolleySingleton.instance?.addToRequestQueue(stringRequest)
go(test) // this line should be removed

2- Когда вы получите ответ, вы должны добавить вызов после анализа error значение следующим образом:

Response.Listener<String> { response ->
try {
val obj = JSONObject(response)
test = obj.getBoolean("error")
go(test) // this line should be here
Toast.makeText(applicationContext, obj.getString("message"),
Toast.LENGTH_LONG).show()
} catch (e: JSONException) {
e.printStackTrace()
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]