android如何导入活动,关于android:如何将活动值传递给另一个活动(Kotlin)

我是Kotlin的新手,我正在尝试为我的应用进行设置活动,我希望该活动将其价值传递给其他活动。 我尝试了不同的代码,但没有一个起作用,我尝试制作一个共享的首选项文件,但我不知道如何编写代码

要清楚,我想将字体类型从设置[main]活动传递到另一个活动,但我不知道如何!

我的主要活动

val preferences = applicationContext.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)

val prefEditor = preferences.edit()

val fonts = arrayOf("Data1","Data2","Data3","Data4")

val adapterCountry = ArrayAdapter(this, android.R.layout.simple_list_item_1, fonts)

val spinner = findViewById(R.id.spinner) as Spinner

spinner.adapter = adapterCountry

spinner.setSelection(preferences.getInt("position", 0))

spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {

override fun onItemSelected(parent: AdapterView, view: View, position: Int, id: Long) {

spinner.setSelection(position)

prefEditor.putInt("position", position)

prefEditor.apply()

val selecteditem = parent.getItemAtPosition(position).toString()

if (selecteditem =="Data1"){

}

}

override fun onNothingSelected(parent: AdapterView) {

}

}

这是我的主要2活动:

class Main2Activity : AppCompatActivity() {

internal lateinit var sh : SharedPreferences

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main2)

sh = PreferenceManager.getDefaultSharedPreferences(this)

}

override fun onStart() {

super.onStart()

if (sh.getBoolean("positon", false)){

when(sh.getInt("position", 0)){

0->{

t1.typeface = Typeface.createFromAsset(assets,"andlso.ttf")

}

1->{

t1.typeface = Typeface.createFromAsset(assets,"frsspbl")

}

}

}

}

我在这里找到了这个问题的解决方案

在此处输入链接说明

尝试将此回答改写为Kotlin。

如果只是从那个活动到另一个活动而已链接在一起,则可以考虑仅传递一个意图。 否则,如果您确实需要在应用程序范围内使用首选项是个好方法:developer.android.com/training/data-storage/shared-preferences

因此,基本上您想将Int中的数据(字体类型)从一个活动传递到另一个活动。 您可以使用SharedPrefenrences,但在Android中不建议使用。

我给您2个解决方案:

1.使用捆绑

MainActivity.kt

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

val fonts = arrayOf("Data1","Data2","Data3","Data4")

val adapterCountry = ArrayAdapter(this, android.R.layout.simple_list_item_1, fonts)

val spinner = findViewById(R.id.spinner) as Spinner

spinner.adapter = adapterCountry

spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {

override fun onItemSelected(parent: AdapterView, view: View, position: Int, id: Long) {

spinner.setSelection(position)

val selecteditem = parent.getItemAtPosition(position).toString()

if (selecteditem =="Data1") {

}

// Start another activity with position

val intent = Intent(this@MainActivity, Main2Activity::class.java)

intent.putExtra("position", position);

startActivity(intent)

}

override fun onNothingSelected(parent: AdapterView) {

}

}

}

}

Main2Activity.kt

class Main2Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

val position = intent.getIntExtra("position", 0)

}

}

2.使用SharedPreferences

MainActivity.kt

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

val preferences = PreferenceManager.getDefaultSharedPreferences(this)

val fonts = arrayOf("Data1","Data2","Data3","Data4")

val adapterCountry = ArrayAdapter(this, android.R.layout.simple_list_item_1, fonts)

val spinner = findViewById(R.id.spinner) as Spinner

spinner.adapter = adapterCountry

spinner.setSelection(preferences.getInt("position", 0))

spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {

override fun onItemSelected(parent: AdapterView, view: View, position: Int, id: Long) {

spinner.setSelection(position)

val selecteditem = parent.getItemAtPosition(position).toString()

if (selecteditem =="Data1"){

}

// Save position to prefs.

preferences.edit()

.putInt("position", position)

.apply()

}

override fun onNothingSelected(parent: AdapterView) {

}

}

}

}

Main2Activity.kt

class Main2Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

// Get position from prefs.

val position = PreferenceManager.getDefaultSharedPreferences(this).getInt("position", 0)

}

}

您能告诉我如何在其他屏幕上获取数据吗? 在这种情况下,只需使用intent.getIntExtra("position", 0)或intent.getIntExtra("position1", 0)。

Intent已经具有将信息从一个活动发送到另一个活动的功能。

// in your first activity:

val intent = Intent(context, Main2Activity::class.java)

.putExtra("position", position)

startActivity(intent)

// in your second activity, you can fetch the extras like this:

class Main2Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

val position = intent.getIntExtra("position", -1)

}

}

我不建议使用共享首选项在屏幕之间传递事件,因为如果您的应用在崩溃之前无法清理,就可能陷入尴尬的状态,从而无法清除其共享的偏好状态。

它说上下文没有分类器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mockito –带有注释和静态方法的额外接口

在代码中,我最近遇到了一段非常糟糕的代码,这些代码基于对对象执行某些操作的类转换。 当然,代码需要重构,但是如果您首先没有对该功能进行单元测试,则有时您可能无法做到/或者不想这样做(这应该是可以理解…

怎么把原来的墙拆掉_家装拆除不是简单的砸砸墙,它也是有技术的

装修拆除中有很多人认为,拆除施工没有什么技术含量,感觉就像小品演的那样,挥挥大锤砸砸墙就可以了。所以有的人图便宜就从马路上随便找的工人来砸墙,他们不管是不是承重墙,只要业主要求他们就敢咋,后果真有…

20180209-os模块

下面将学习关于os模块的相关操作 项目练习的目录结构如下:所有的操作都是基于os_exercise.py模块 1.获取当前的Python脚本的工作目录路径 os.getcwd() # 1.获取当前目录 dir os.getcwd() print(获取当前python脚本工作目录:,dir) # 输出 # 获取当前python脚本工作目…

UOJ #188. 【UR #13】Sanrd

Description 给定 \(\sum_{il}^r f[i]\)\(f[i]\) 把 \(i\) 的每一个质因子都从小到大排列成一个序列(\(p_i^{c_i}\)要出现 \(c_i\) 次)后 , 第二大的质因子.题面 Solution 符合 \(Min25\) 筛的处理顺序. 递归处理每个质因子作为次大值时的贡献,和不作为次大值时贡献的方案数 , …

关于IE6.7.8.FF兼容的问题

所有浏览器 通用 height: 100px; IE6 专用 _height: 100px;IE6 专用 *height: 100px; IE7 专用 * height: 100px; IE7、FF 共用 height: 100px !important; 一、CSS 兼容 以下两种方法几乎能解决现今所有兼容. 1, !important (不是很推荐,用下面的一种感觉最安…

冯珊珊_模拟器企业衡泰信签约冯珊珊,推动高尔夫运动下沉

9月21日,著名高尔夫模拟器企业衡泰信宣布签约中国高尔夫球员冯珊珊,双方正式达成全面战略合作,旨在共同推动室内高尔夫运动的普及与推广,让更多人参与并喜爱上这项运动,推动全民健身目标,借助互联网、智慧场…

MOXy是GlassFish 4中新的默认JSON绑定提供程序

GlassFish 4现在可以提供完整的Java EE 7(JSR-342)平台。 EclipseLink为该发行版做出了一些重大贡献。 首先是提供JPA 2.1(JSR-338)实现。 我将在本文中介绍的第二个内容是EclipseLink MOXy,它现在是JAX-RS应用程序的默…

假期第四周周总结

第四周: 本周做了什么:由于第一次科三没过,只能再约一次,两天在练科三,其他时间都在安装oracle,虚拟机,并配置环境,学习oracle数据库,并改进河北创新科技平台系统 收获是…

通过form实现enter事件

结构 <form action‘#’> <input typesearch /> <button>搜索</button> </form> 在这种情况下即使给button加上事件&#xff0c;按enter键也会执行点击事件中的代码&#xff08;pc-移动web皆可以&#xff09;。&#xff08;action需为javascript…

CSS3之background的调整和增加的属性

对于background做了一些修改&#xff0c;最明显的一个就是采用设置多背景&#xff0c;不但添加了4个新属性&#xff0c;并且还对目前的属性进行了调整增强。 1、多个背景图片 在css3里面&#xff0c;你可以再一个标签元素里应用多个背景图片。代码类似与css2.0版本的写法&…

html 天气特效,用CSS制作天气特效动画,源码分享

效果图今天给大家带来的是CSS3动画天气图标代码&#xff0c;简单实用好看&#xff01;CSS源码&#xff1a;html { box-sizing: border-box; }html *,html *:before,html *:after { box-sizing: inherit; }body {max-width: 42em;padding: 2em;margin: 0 auto;color: #161616;fo…

做折线图坐标轴数字_Excel折线图表的另类表达制作?牛闪君使用了双线表达法来完成...

牛闪闪办公第846个原创技巧Zloffice社群的小伙伴还是很爱学习的&#xff0c;这不&#xff0c;有一位小伙伴看到“特殊”图表表达&#xff0c;想知道是怎么做出来的。这种学习的思路非常好&#xff0c;看到好的表达就想学习&#xff0c;这是非常好的收集习惯&#xff0c;能够积累…

Spring MVC控制器的单元测试:“普通”控制器

本教程的第一部分描述了如何配置使用Spring MVC Test框架的单元测试 。 现在是时候动手做&#xff0c;学习如何为“常规”控制器编写单元测试了。 显而易见的下一个问题是&#xff1a; 什么是普通控制器&#xff1f; 好吧&#xff0c;一个普通的控制器&#xff08;在此博客文…

回溯法

一、概念&#xff1a;回溯法也是一种枚举&#xff0c;但是回溯法将枚举(生成&#xff09;和检查有机结合起来&#xff0c;从而减少了不必要的枚举。。 二、经典八皇后问题。 #include<iostream> #include<cmath> using namespace std;int vis[100]; int store[100]…

【Spring】入门HelloWorld

参考&#xff1a;https://www.yiibai.com/spring/spring-tutorial-for-beginners.html 一、创建项目 1.利用IntelliJ创建Maven项目2.配置pom.xml,引入Spring <?xml version"1.0" encoding"UTF-8"?> 4.0.0 <groupId>com.jh</groupId> &…

html属性可以用来定义内联样式,18年6月考试《网页设计与制作》期末大作业.doc...

...(单选题) 1: 以下HTML代码&#xff0c;判断正确的是( )。 A: 错了B: “button”双引号错了(应为单引号)C: 第2、3行应加入…….D: 没有错误正确答案:(单选题) 2: 数据库的基本操作是( )。A: 增&#xff0c;删&#xff0c;改&#xff0c;查B: 增&#xff0c;删&#xff0c;加…

DIV CSS初学者需重视的10个简单问题与技巧

DIVCSS初学者往往感觉自己遇到很多莫明其妙的问题&#xff0c;其实只是一些小细节没有引起重视&#xff0c;下面罗列了10个问题与技巧&#xff0c;温故而知新。 一、检查HTML元素是否有拼写错误、是否忘记结束标记即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验…

Spring MVC:表单处理卷。 5 –选择,选项,选项标签

下拉列表是Web表单中最常见的元素之一。 在HTML中&#xff0c;可以使用适当的标签创建此类控件&#xff1a; <form&#xff1a;select> –下拉列表的父标签和<form&#xff1a;option> – <form&#xff1a;select>标签的子标签。 Spring MVC标签库为下拉列表…

06.linux平台下运行go文件

1.获取linux位数 getconf LONG_BIT 2.下载地址&#xff1a; https://studygolang.com/dl 3.解压安装包 sudo tar -xzf go1.9.2.linux-amd64.tar.gz -C /usr/local 4.设置环境变量 sudo vi /etc/profile export GOROOT/usr/local/go export GOBIN$GOROOT/bin export GOPATH/h…

python3读取ini文件_python3配置文件ini读取方法

1.最常用的Plain text形式的配置文件 1.1首选 .init 文件 标准库 configparser 1.2次选 csv文件 与 Unix/Linux 下常用的 xx xxx形式的配置文件 分别是标准库csv 与 shlex 2.最常用的二进制级配置文件 2.1持久化数据首选shelve 标准库 shelve 2.2shelve的对于一些项目我们需要…