如何在Java项目中使用NavigationExtensions.kt?

2023-12-12

我正在尝试在新项目中使用 BottomNavigation 实现 NavController。这是我的第一次尝试,到处都有很多关于此的模糊信息。

所以我的问题涉及每个底部选项卡都有自己的后堆栈并在底部导航点击之间保留片段。是的,我看过https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample我无法理解如何将其与我现有的 Java 代码集成,因为示例是 Kotlin 中的。

谁能帮我这个?


好吧,经过几个小时的尝试,我所做的是使用示例 Kotlin 项目,然后将我的 java 类、资源和资产导入到该项目中。为了更改 mainactivity.kt,我对其进行了反编译并找到了以下文件。这仍然是基本的工作原理,但至少我已经有了框架,并且有望节省一些人的时间……

package com.example.android.navigationadvancedsample;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.Observer;
import androidx.navigation.NavController;

import com.google.android.material.bottomnavigation.BottomNavigationView;

import org.jetbrains.annotations.Nullable;

import java.util.List;

import kotlin.collections.CollectionsKt;


public class MainActivity extends AppCompatActivity {

private LiveData currentNavController;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    getSupportActionBar().hide();
    setContentView( R.layout.activity_main );
    if (savedInstanceState == null) {
        this.setupBottomNavigationBar();
    }
}

protected void onRestoreInstanceState(@Nullable Bundle savedInstanceState) {
    super.onRestoreInstanceState( savedInstanceState );
    this.setupBottomNavigationBar();
}


void setupBottomNavigationBar() {
    BottomNavigationView bottomNavigationView = this.findViewById( R.id.bottom_nav );
    List navGraphIds = CollectionsKt.listOf( new Integer[]{R.navigation.home, R.navigation.list, R.navigation.form} );
    LiveData controller = NavigationExtensionsKt.setupWithNavController( bottomNavigationView, navGraphIds, getSupportFragmentManager(), R.id.nav_host_container, getIntent() );
    controller.observe(  this, (Observer) (new Observer() {
        // $FF: synthetic method
        // $FF: bridge method
        public void onChanged(Object var1) {
            //this.onChanged((NavController)var1);
        }

    }) );

    this.currentNavController = controller;
}

public boolean onSupportNavigateUp() {
    LiveData var10000 = this.currentNavController;
    boolean var2;
    if (var10000 != null) {
        NavController var1 = (NavController)var10000.getValue();
        if (var1 != null) {
            var2 = var1.navigateUp();
            return var2;
        }
    }

    var2 = false;
    return var2;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java项目中使用NavigationExtensions.kt? 的相关文章

  • 如何关闭整个数据库的区分大小写

    我创建了一个包含许多脚本和许多存储过程的数据库 在这个数据库中 我们没有注意担心区分大小写 因为它对于我的本地开发计算机来说是关闭的 综上所述 我试图弄清楚如何使以下两条语句返回相同的结果 SELECT FROM companies SEL
  • 使用 alpha 通道叠加两个 ggplot2 stat_密度2d 图

    我想叠加两个ggplot2使用 alpha 通道进行绘图 结果图像显示两个数据集 这是我的测试数据 data read table text P1 1 0 4 nP2 0 0 2 nP3 2 1 8 nP4 2 2 6 nP5 0 5 2
  • 从文件路径显示图像视图?

    我需要仅使用文件名而不是资源 ID 来显示图像 ImageView imgView new ImageView this imgView setBackgroundResource R drawable img1 我在可绘制文件夹中有图像
  • 无论我如何尝试,“netsh wlan startHostednetwork”命令都不起作用

    C Windows system32 gt netsh wlan 显示驱动程序 接口名称 无线网络连接 Driver DW1501 Wireless N WLAN Half Mini Card Vendor Broadcom Provide
  • ContentDialog Windows 10 Mobile XAML - 全屏 - 填充

    我在项目中放置了一个 ContentDialog 用于 Windows 10 上的登录弹出窗口 当我在移动设备上运行此项目时 ContentDialog 未全屏显示 并且该元素周围有最小的填充 在键盘上可见 例如在焦点元素文本框上 键盘和内
  • 如何在 C# 中获取 CMD/控制台编码

    我需要指定正确的代码页来使用 zip 库打包文件 正如我所见 我需要指定控制台编码 在我的例子中为 866 C Users User gt mode Status for device CON Lines 300 Columns 130 K
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调
  • python从二进制文件中读取16字节长的双精度值

    我找到了蟒蛇struct unpack 读取其他程序生成的二进制数据非常方便 问题 如何阅读16 字节长双精度数出二进制文件 以下 C 代码将 1 01 写入二进制文件三次 分别使用 4 字节浮点型 8 字节双精度型和 16 字节长双精度型
  • 将 r 中的一列从出生日期更改为年龄

    我是第一次使用 data table 我的表中有大约 400 000 个年龄的列 我需要将它们从出生日期转换为年龄 做这个的最好方式是什么 我一直在思考这个问题 到目前为止对这两个答案都不满意 我喜欢用lubridate 就像 KFB 所做
  • Rails 未定义“2013-03-06”的方法“strftime”:字符串

    我收到错误 2013 03 06 的未定义方法 strftime 字符串 当尝试使用 strftime 从字符串 2013 03 06 正常显示日期 2013 年 6 月星期日 3 日或类似的日期 时 在我的 index html erb
  • 用于插入或替换 URL 参数的 Django 模板标签

    有人知道 Django 模板标签可以获取当前路径和查询字符串并插入或替换查询字符串值吗 例如向 some custom path q how now brown cow page 3 filter person 发出请求 电话 urlpar
  • 如何从地址簿中获取一个人的电话号码?

    我想做的就是让用户从地址簿中选择一个号码 我在这个问题中找到了代码 如何从地址簿联系人获取电话号码 iphone sdk https stackoverflow com questions 286207 how to get a phone
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要
  • 定义在文本小部件中双击时选择哪些字符

    在 Windows 上 双击文本小部件中的单词也将选择连接的标点符号 有什么方法可以定义您想要选择的角色吗 tcl wordchars该变量的值是一个正则表达式 可以设置它来控制什么被视为 单词 字符 例如 通过双击 Tk 中的文本来选择单
  • 混合本机/托管可执行文件中的最终托管异常处理程序?

    我有一个使用 clr 编译的 MFC 应用程序 并且我正在尝试为未捕获的托管异常实现最终处理程序 对于本机异常 重写CWinApp ProcessWndProcException works 杰夫的书中提到的两个事件代码项目文章 http
  • 无法安装最新版本的 Numpy (1.22.3)

    我正在尝试安装最新版本的 numpy 即 1 22 3 但看起来 pip 无法找到最后一个版本 我知道我可以从源代码本地安装它 但我想了解为什么我无法使用 pip 安装它 PS 我有最新版本的pip 22 0 4 ERROR Could n
  • 如何在 ASP.NET Core 中注入泛型的依赖关系

    我有以下存储库类 public class TestRepository Repository
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p
  • 使用
    元素作为 JavaScript 代码的输入。这是最好的方法吗?

    各位 显然 我是编码新手 所以最近完成了一些有关 HTML 和 Javascript 的 Lynda 课程后 我的简单 HTML 页面遇到了困难 基本上 我想要的是使用 JavaScript 进行基本计算 让用户使用 HTML 输入两个数字
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • 使用 Spark 从 Scala 中的 Dataframe 中的数组列中删除 null (1.6)

    我有一个带有 id 列的数据框和一个具有结构数组的列 架构 root id string nullable true desc array nullable false element struct containsNull true na
  • 提交 HTML 表单后,如何使用 FastAPI 将用户重定向回主页?

    我有一个包含学生表格的页面 我添加了一个按钮 允许您向表中添加新行 为此 我将用户重定向到带有输入表单的页面 问题是 提交完成的表单后 用户会转到一个新的空白页面 如何传输已完成表单中的数据并将用户重定向回表格 我刚刚开始学习Web编程 所
  • Eclipse 插件 - 如何获取编辑器的最后工作

    我正在编写一个 Eclipse 插件 它通过几个按钮向用户公开一个视图 单击任何按钮时 我想将特定注释粘贴到用户当前正在工作的编辑器窗口中以及他指向的光标位置 一旦用户单击该按钮 编辑器窗口就不再具有焦点 并且以下代码不起作用 workbe
  • 来自参数的 Azure 数据工厂源数据集值

    我在 Azure Datafactory 中有一个由 CSV 文件支持的数据集 我在数据集中添加了一个附加列 并希望从数据集参数传递它的值 但值永远不会复制到该列 type AzureBlob structure name MyField
  • 在 where 子句中使用局部变量的替代方法

    我有一个查询 其中有一个使用多个局部变量构建的 where 子句 但这非常慢 以下是一个粗略的示例 因为我当前无权访问该查询 declare a varchar 50 b varchar 50 c varchar 50 set a set
  • 如何配置 ESLint 以允许粗箭头类方法

    ESLint 正在抛出一个Parsing error Unexpected token 当我尝试 lint 我的 Es6 类时出错 我缺少什么配置参数来启用 eslint 中的胖箭头类方法 示例类 class App extends Rea
  • 在 Haskell 中如何轮询文件、套接字或句柄以使其可读/可写?

    我如何从 Haskell 观看多个文件 套接字并等待它们变得可读 可写 Haskell 中有类似 select epoll 的东西吗 或者我被迫为每个文件 套接字生成一个线程 并始终使用该线程内的阻塞资源 这个问题是错误的 你不是force
  • 如何从字符串中去除特定标签和特定属性?

    事情是这样的 我正在做一个项目来帮助人们教授 HTML 我自然是害怕史蒂夫那个渣男 见图1 所以我想阻止ALLHTML 标签 except那些在非常具体的情况下批准的白名单 在那些已批准的 HTML 标签中 我想删除有害的属性以及 例如on
  • 为什么 Spring MVC 报告“找不到类型的返回值的转换器:class org.json.JSONObject”?

    我想返回一个由两个字符串组成的 JSON 但不知道如何实现它 这是我的代码 PostMapping public ResponseEntity lt gt createUser RequestBody User user JSONObjec
  • 避免返回所有实体的学说

    使用Symfony2 doctrine2 当我们使用find 函数根据选择的实体获取特定对象 如果存在关系 时 如OneToMany Doctrine返回所有其他对象 例如 em this gt get doctrine orm entit
  • IOS 自动布局更改旋转位置

    我想将一个容器发送到另一个容器的下方 纵向发送 横向发送并排 仅使用自动布局可以吗 我知道我可以通过编程来做到这一点 只是想知道是否可以从布局中做到这一点 像这样 Well didRotateFromInterfaceOrientation
  • 如果 popstate 事件来自 HTML5 Pushstate 的后退或前进操作,如何检索?

    我正在开发一个网页 根据下一个或后一个操作我执行相应的动画 使用推送状态时会出现问题 当我收到事件时 我如何知道用户是否使用 Pushstate API 单击后退或前进历史记录按钮 或者我是否必须自己实现某些内容 您必须自己实现它 这很容易
  • C# WriteFile(),无法写入USB HID设备

    我对 C 和 Windows 编程相当陌生 我正在尝试在 USB HID 设备之间建立通信 我使用 SetupDiGetDevicexxxxxx 成功获取设备路径 并使用 CreateFile 获取句柄 下面是我的代码 public con
  • 使用map()时出现意外的逗号

    我有一个包含元素列表的数组 我尝试使用模板字符串将此列表附加到 HTML 元素 var description HTML CSS Javascript object oriented programming Progressive Web
  • 如何用Spark高效读取多个小parquet文件?有CombineParquetInputFormat吗?

    Spark 生成了多个小 parquet 文件 如何在生产者和消费者 Spark 作业上有效处理少量 parquet 文件 恕我直言 最直接的方法是在写入 parquet 文件之前使用重新分区 合并 除非数据倾斜并且您想要创建相同大小的输出
  • std::vector 的对齐问题

    我终于遇到了这里描述的烦人的问题 https eigen tuxfamily org dox group TopicStlContainers html 我有一个包含多个特征固定大小矩阵的结构 并且我想将结构的多个实例存储在 std vec
  • Java内存模型-有人能解释一下吗?

    多年来 我一直试图理解part处理内存模型和并发性的 Java 规范 我不得不承认我失败得很惨 是的 我了解锁 同步 wait 和 notification 我可以很好地使用它们 谢谢 我什至对 不稳定 的作用有一个模糊的概念 但所有这些都
  • 有没有一种方法可以在MySQL中动态执行代码,类似于Oracle中的“立即执行”?

    Like EXECUTE IMMEDIATE在Oracle中 有什么方法可以在MySQL存储过程中动态执行代码吗 我真的很想在 MySQL 存储过程中使用准备好的语句 以便在循环的每次迭代中生成新的 SQL 语句 MariaDB 支持立即执
  • Rails - 使用 Ajax 和 :remote => true 更新 div

    我已经关注了这个铁路广播公司通过 Ajax 提交表单并更新 div 而不重新加载页面 但我在处理其中一部分时遇到了问题 瑞安有 products html in an index js erb文件来更新 productsdiv 提交表单时
  • 如何在Java项目中使用NavigationExtensions.kt?

    我正在尝试在新项目中使用 BottomNavigation 实现 NavController 这是我的第一次尝试 到处都有很多关于此的模糊信息 所以我的问题涉及每个底部选项卡都有自己的后堆栈并在底部导航点击之间保留片段 是的 我看过http