V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
sucvia
V2EX  ›  Kotlin

有没有人能帮我解释一下,这里面的代码.如果我创建一个新窗口,按照这个逻辑,怎么显示出来

  •  
  •   sucvia · Jan 12, 2022 · 3156 views
    This topic created in 1567 days ago, the information mentioned may be changed or developed.

    package com.example.myapplication2

    import android.os.Bundle import com.google.android.material.snackbar.Snackbar import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupActionBarWithNavController import android.view.Menu import android.view.MenuItem import com.example.myapplication2.databinding.ActivityMainBinding

    class MainActivity : AppCompatActivity() {

    private lateinit var appBarConfiguration: AppBarConfiguration //创建 2 个变量
    private lateinit var binding: ActivityMainBinding
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
    
        setSupportActionBar(binding.toolbar)
    
        val navController = findNavController(R.id.nav_host_fragment_content_main)
        appBarConfiguration = AppBarConfiguration(navController.graph)
        setupActionBarWithNavController(navController, appBarConfiguration)
    
        binding.fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                .setAction("Action", null).show()
        }
    }
    
    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        menuInflater.inflate(R.menu.menu_main, menu)
        return true
    }
    
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        return when (item.itemId) {
            R.id.action_settings -> true
            else -> super.onOptionsItemSelected(item)
        }
    }
    
    override fun onSupportNavigateUp(): Boolean {
        val navController = findNavController(R.id.nav_host_fragment_content_main)
        return navController.navigateUp(appBarConfiguration)
                || super.onSupportNavigateUp()
    }
    

    }

    我是个萌新,刚学 Kotlin,有没有推荐群一起学习?

    按照以上代码,如果我有个按钮 id="create_button" ,按下载入 test_window.xml 窗口. test_window.xml 里面有什么讲究吗?

    3 replies    2022-02-17 17:28:37 +08:00
    AoEiuV020CN
        1
    AoEiuV020CN  
       Jan 12, 2022
    这是安卓问题,你该学的是安卓,随便找个教程跟着走走,你所谓窗口在安卓可以是 activity fragment dialog ,可以先学到这里,再考虑这问题,
    sucvia
        2
    sucvia  
    OP
       Jan 12, 2022
    @AoEiuV020CN 好的 我去了解一下 看过很多 kotlin 的教程,基本上都是讲 kotlin 语法,没有讲交互的
    XXWHCA
        3
    XXWHCA  
       Feb 17, 2022
    你用的是 Jetpack navigation 导航,是 google 推荐的单 Activity 应用方案,如果是刚入门觉得你还是好好看官方文档 https://developer.android.google.cn/guide/navigation
    实际上 navigation 是对 Fragment 的封装,让 Fragment 更易于维护和使用。

    如果你需要导航到其他页面需要先将目标 fragment 注册到导航图,然后 navController.navigate(id)就可以了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2830 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 15:44 · PVG 23:44 · LAX 08:44 · JFK 11:44
    ♥ Do have faith in what you're doing.