[英]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.