Android笔记(三)多Activity活动的切换中的简化处理

多Activity实现的跳转简单实现

Activity定义移动的界面。在本例中,介绍多个活动之间的切换的简化通用的实现。在本例中,定义三个活动MainActivity、FirstActivity和SecondActivity.要求能从MainActivity分别切换到FirstActivity和SecondActivity,运行效果如下所示:

在这里插入图片描述

一、定义FirstActivity

class FirstActivity : ComponentActivity()  {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent{
            FirstScreen()
        }
    }
}

@Composable
fun FirstScreen(){
    Box(modifier= Modifier
        .fillMaxSize()
        .background(Color.Green),
        contentAlignment = Alignment.Center){
        Text( text ="第一个界面",fontSize=30.sp,color = Color.Yellow)
    }
}

二、定义SecondActivity

class SecondActivity : ComponentActivity()  {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent{
            SecondScreen()
        }
    }
}

@Composable
fun SecondScreen(){
    Box(modifier= Modifier
        .fillMaxSize()
        .background(Color.Blue),
        contentAlignment = Alignment.Center){
        Text( text ="第二个界面",fontSize=30.sp,color = Color.Yellow)
    }
}

三、MainActivity的实现跳转传统处理方式

定义交互,实现不同活动的跳转。

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ForCourseTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    MainScreen()
                }
            }
        }
    }
}

@Composable
fun MainScreen(modifier: Modifier = Modifier) {
    val context = LocalContext.current
    Box(contentAlignment= Alignment.Center){
        Column(horizontalAlignment = Alignment.CenterHorizontally){
            Button(modifier = Modifier.width(200.dp),onClick={
                val intent = Intent(context,FirstActivity::class.java)
                context.startActivity(intent)
            }){
                Text(text = "FirstActivity",fontSize = 18.sp)
                Icon(imageVector=Icons.Filled.ArrowForward,contentDescription = "第一个活动")
            }

            Button(modifier = Modifier.width(200.dp),onClick={
                val intent = Intent(context,SecondActivity::class.java)
                context.startActivity(intent)
            }){
                Text(text = "SecondActivity",fontSize = 18.sp)
                Icon(imageVector=Icons.Filled.ArrowForward,contentDescription = "第二个活动")
            }
        }
    }
}

在上述的MainActivity通过定义两个按钮实现对不同活动的跳转。

四、对MainActivity的优化处理

可以在MainActivity中调用自定义的按钮,通过按钮实现不同活动的跳转。这时定义的自定义按钮函数如下:

@Composable
fun <T> CustomButton(title:String,context: Context,classType:Class<T>){
    Button(modifier = Modifier.width(200.dp),onClick={
        val intent = Intent(context,classType)
        context.startActivity(intent)
    }){
        Text(text =title,fontSize = 18.sp)
        Icon(imageVector=Icons.Filled.ArrowForward,contentDescription = title)
    }
}

这里,定义了一个通用的函数CustomButton,并且指定一个类型变量T,函数参数接受参数,可以创建一个自定按钮,这个自定按钮完成了按钮的文本和图标的定义,并设置点击动作,使得点击动作能从不同活动进行跳转。修改上述的MainActivity活动要调用的MainScreen函数,这时代码为:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ForCourseTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    MainScreen()
                }
            }
        }
    }
}

@Composable
fun MainScreen(modifier: Modifier = Modifier) {
    val context = LocalContext.current
    Box(contentAlignment= Alignment.Center){
        Column(horizontalAlignment = Alignment.CenterHorizontally){
            CustomButton(title = "FirstActivity", context =context , 
                         classType =FirstActivity::class.java)
            CustomButton(title="SecondActivity",context = context,
                         classType = SecondActivity::class.java)
        }
    }
}

可以发现代码量减少。同样,如果定义的功能有类似的特征,可以考虑定义通用的函数或类,来达到一次定义,多次调用的目的。

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android笔记系统是一种可以帮助用户记录、整理和分享笔记的应用程序。以下是一些常见的Android笔记系统的特点和功能: 1. 笔记编辑:大多数Android笔记系统都提供了基本的文本编辑功能,用户可以输入、编辑和保存笔记。一些系统还允许用户插入图片、附件和链接等元素,以丰富笔记内容。 2. 分类和标签:许多Android笔记系统允许用户将笔记进行分类和标签,以便更好地组织和查找。这有助于用户根据主题、日期或其他标准将笔记分组,以便快速找到所需的资料。 3. 笔记共享:一些Android笔记系统允许用户将笔记分享到社交媒体平台或与其他人共享。用户可以选择将笔记以链接、邮件或其他形式发送给朋友或同事,以便他们能够方便地查看和评论笔记。 4. 搜索功能:许多Android笔记系统提供强大的搜索功能,用户可以根据关键词、标签或分类快速找到所需的笔记。 5. 提醒和日历集成:一些Android笔记系统与日历应用程序集成,允许用户设置提醒,以便在特定日期或时间提醒用户查看或更新笔记。 6. 云同步:大多数Android笔记系统都支持云同步功能,用户可以将笔记存储在云端,并在多个设备上访问。这有助于用户在不同设备之间同步笔记,并确保数据的安全性和可访问性。 7. 多平台支持:一些Android笔记系统还支持在多个平台上使用,包括iOS、Windows和Mac等。这为用户提供了更多的灵活性和选择。 总之,Android笔记系统为用户提供了一个方便、高效的方式来记录、整理和分享笔记。它们提供了各种功能和工具,以帮助用户更好地组织和查找信息,并与其他人共享和协作。选择一个适合自己的Android笔记系统,可以帮助您更有效地管理您的学习、工作或个人笔记

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值