我对Kotlin和Android,以及开发一个使用共享首选项的项目还是新手。
但是,主活动根本不刷新。我是说,我都不知道怎么做。我希望我的主要活动刷新当我从登录活动返回。
到目前为止,它只在我关闭应用程序并重新打开时工作。会话可能缓存在共享首选项中。
我试图通过点击某些按钮来启动和完成活动(例如,当用户通过所有凭据时,点击登录按钮),但它没有工作。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val menu: Menu = navView.menu
val target2: MenuItem = menu.findItem(R.id.miItem2)
val target3: MenuItem = menu.findItem(R.id.miItem3)
//region user session
try{
if(!SharedPrefManager.getInstance(this)!!.isLoggedIn()){
target2.isVisible = false
target3.isVisible = false
Toast.makeText(applicationContext, "nie zalogowany", Toast.LENGTH_LONG).show()
}
else{
target2.isVisible = true
target3.isVisible = true
Toast.makeText(applicationContext, "zalogowany", Toast.LENGTH_LONG).show()
}
}catch (e: NullPointerException){
}
//endregion
fun isLoggedIn(): Boolean{
val sharedPreferences: SharedPreferences = mCtx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE)
if(sharedPreferences.getString(KEY_USER_EMAIL, null) != null){
return true
}
return false
}
val btnLogInActivity : Button = findViewById(R.id.logButton)
btnLogInActivity.setOnClickListener {
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
}
buttonLogin.setOnClickListener {
userLogin()
newMainActivity()
}
private fun newMainActivity(){
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}
如果你需要更多的代码来修复这个问题,请告诉我
只需在代码中添加finish()
即可。使用以下代码更新方法:
btnLogInActivity.setOnClickListener {
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
finish()
}
登录后:
private fun newMainActivity(){
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
finish()
}
问题内容: 我在这个.java文件中有一个SharedPreference;在底部,您可以看到我将值保存到SharedPreferences GB_PREFERENCES_BENCH和GB_PREFERENCES_FLIES。如何在其他活动中使用这些值?请参阅第二个代码示例以了解如何使用它。 这是我要使用的方式;(特别是在on create方法中,将TextView的文本设置为SharePrefe
我正在使用共享首选项为我的应用程序存储某些值。我想看看我的手机上实际存储信息的文件。我在Eclipse上找到了很多实现这一点的方法,但我正在Android Studio上调试。我的手机有根了。我读到拥有root访问权限对读取这些类型的文件很重要。如果没有办法,那么我将查找如何通过我的程序访问信息,然后输出到日志猫。希望,虽然,我可以直接在电话上查看文件,因为它要简单得多。多谢了。
我的首选项活动显示了几个列表首选项。在启动此活动的类中,我监听SharedReferences上的任何更改,并使用getString(String键,String默认值)获取所选选项。 当我检索这个字符串时,我需要根据它是什么字符串执行某些操作。但是,我该如何使用字符串呢。如果是int,我可以使用switch case,但是我该怎么处理字符串呢? 除了使用if-else和String还有其他方法吗
我想分享一个文件(. pdf,. apk等)使用分享意图,我搜索谷歌,但我只找到共享图像的代码
我在我制作的闪屏页面中调用共享首选项 这是我的方法 顺便说一下,我不知道这一行是什么//??这是我的日志 正在执行热重启。。。正在将文件同步到为x86构建的Android SDK设备。。。1776ms内重新启动应用程序。I/flatter(8982):loadingScreen=true E/flatter(8982):[ERROR:flatter/lib/ui/ui\u dart\u state
对于下面的代码,我正在尝试检索共享的首选项,我认为它保存正确,但当我回到登录屏幕时,所有的数据都消失了。我需要它留在我回到这个屏幕上。所以我在个人资料页面上输入姓名、年龄和id到三个单独的行中。然后按下save按钮,然后按下action Bar上的back转到前面的页面。当我回到个人资料页面时,我的信息应该还在那里,但它没有任何帮助?