Как перейти к новой активности после успешного входа? - PullRequest
0 голосов
/ 25 августа 2018

Это мой LoginActivity

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, если вход выполнен успешно. Можете ли вы помочь мне сделать это?

У меня это не работает, проблема в том, что значение test нельзя изменить в запросе.

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

1 Ответ

0 голосов
/ 25 августа 2018

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()
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...