繁体   English   中英

启动画面始终显示相同的活动

[英]Splash screen always shows same Activity

我有一个启动画面,它会在应用程序启动时打开。 如果用户已经登录,它会打开主要活动,否则它会打开登录页面。 但在我的情况下,如果用户未登录,它总是会打开主要活动。

启动画面.kt

class SplashScreen : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.splash_activity)
        val details: SharedPreferences = getSharedPreferences("details", Context.MODE_PRIVATE)
        if(details.getBoolean("login",false)){
            Handler().postDelayed(Runnable { startActivity(Intent(this,
                MainActivity::class.java)) },500)
        }
        else{
            Handler().postDelayed(Runnable { startActivity(Intent(this,
                LoginActivity::class.java)) },500)
        }

    }
}

登录活动.kt

class LoginActivity : AppCompatActivity() {

    lateinit var login_button: Button
    lateinit var sign_up: TextView
    lateinit var password: TextView
    lateinit var mobile: TextView
    lateinit var progress_bar:ConstraintLayout
    lateinit var details:SharedPreferences

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)
        details = getSharedPreferences("details", Context.MODE_PRIVATE)
        details.edit().putBoolean("login",false).apply()
        mobile = findViewById(R.id.login_mobile_no)
        password = findViewById(R.id.login_password)
        login_button = findViewById(R.id.login_btn)
        sign_up = findViewById(R.id.login_sign_up)
        progress_bar = findViewById(R.id.login_prgs)
        sign_up.setOnClickListener {
            sign_up.setBackgroundResource(R.color.yellow)
            sign_up.setTextColor(resources.getColor(R.color.black))
            Handler().postDelayed(Runnable {
                sign_up.setBackgroundResource(R.color.transaprency)
                sign_up.setTextColor(resources.getColor(R.color.white))
                startActivity(Intent(this, RegistrationActivity::class.java))
            },200)

        }
        login_button.setOnClickListener {
            login_button.setBackgroundResource(R.color.red)
            if(mobile.text.isNotBlank()&&password.text.isNotBlank()){
                if(Connection().checkConnectivity(this)) {
                    val q = Volley.newRequestQueue(this)
                    val url = "http://13.235.250.119/v2/login/fetch_result/"
                    val jsonobj = JSONObject()
                    jsonobj.put("mobile_number", mobile.text.toString())
                    jsonobj.put("password", password.text.toString())
                    try{
                        progress_bar.visibility = View.VISIBLE
                        val jsonreq = object : JsonObjectRequest(
                            Request.Method.POST,url,jsonobj,
                            Response.Listener {
                                if(it.getJSONObject("data").getBoolean("success")){
                                    Toast.makeText(this,"Logged in", Toast.LENGTH_SHORT).show()
                                    progress_bar.visibility = View.GONE
                                    val fetched_data = it.getJSONObject("data").getJSONObject("data")
                                    details.edit().putBoolean("login",true).putString("user_id",fetched_data.getString("user_id"))
                                        .putString("name",fetched_data.getString("name"))
                                        .putString("email",fetched_data.getString("email"))
                                        .putString("mobile_number",fetched_data.getString("mobile_number"))
                                        .putString("address",fetched_data.getString("address")).apply()
                                    startActivity(Intent(this, MainActivity::class.java))

                                }else{
                                    progress_bar.visibility = View.GONE
                                    Toast.makeText(this,"Mobile number or Password is incorrect.!",
                                        Toast.LENGTH_SHORT).show()
                                }

                            },
                            Response.ErrorListener {
                                progress_bar.visibility = View.GONE
                                Toast.makeText(this,"Please Try Again Later.", Toast.LENGTH_SHORT).show()
                            }){
                            override fun getHeaders(): MutableMap<String, String> {
                                val headers = HashMap<String, String>()
                                headers["Content-type"] = "application/json"
                                headers["token"] = "c3acf1e14c21f9"
                                return headers
                            }
                        }
                        q.add(jsonreq)
                    }catch (e: Exception){
                        progress_bar.visibility = View.GONE
                        Toast.makeText(this,"Please Try Again Later.", Toast.LENGTH_SHORT).show()
                    }
                }
                else{
                    Toast.makeText(this,"Please Check your Internet Connection", Toast.LENGTH_SHORT).show()
                }
            }
            else{
                Toast.makeText(this,"Enter the details Correctly..!", Toast.LENGTH_SHORT).show()
            }
            Handler().postDelayed(Runnable {
                login_button.setBackgroundResource(R.color.red)
            },200)

        }
    }

    override fun onBackPressed() {
        finishAffinity()
    }

}

我希望启动画面打开相应的活动,就像用户登录时必须打开MainActivity ,如果用户未登录,则必须打开LoginActivity

收到“成功”回复时,您应该有一行。

details.edit().putBoolean("login", true).commit()

否则共享首选项中的登录条目始终为“false”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM