小编Yas*_*imi的帖子

如何使用导航组件处理片段内的向上按钮

我正在制作一个简单的笔记应用程序,我有 2 个带有导航组件的片段,一个片段有一个笔记列表,另一个片段用于编辑或创建新笔记。

MainActivity我添加

val navController = this.findNavController(R.id.host_fragment)
NavigationUI.setupActionBarWithNavController(this, navController)
Run Code Online (Sandbox Code Playgroud)

然后覆盖 onSupportNavigateUp()

override fun onSupportNavigateUp(): Boolean {
        val navController = this.findNavController(R.id.host_fragment)
        return navController.navigateUp()
    }
Run Code Online (Sandbox Code Playgroud)

NoteEditFragment

requireActivity().onBackPressedDispatcher.addCallback(this) {
        saveOrUpdateNote(noteId, note)
    }
Run Code Online (Sandbox Code Playgroud)

现在按下设备中的“后退按钮”时一切正常,但是onBackPressedDispatcher.addCallback()当我按下屏幕左上角的“向上按钮”时会触发注释。

我的问题是:如何从我的NoteEditFragment?

提前致谢

navigation android kotlin android-architecture-components android-jetpack

5
推荐指数
1
解决办法
2782
查看次数

当我必须指定内存大小时,malloc数组和常规数组之间有什么区别?

malloc()例如,当我必须指定内存大小时,-ed数组和常规数组之间的区别是什么

char* arr =  malloc(50 * sizeof(char)) 
Run Code Online (Sandbox Code Playgroud)

VS

int arr [50]
Run Code Online (Sandbox Code Playgroud)

c arrays malloc dynamic-memory-allocation

1
推荐指数
1
解决办法
264
查看次数

isdigit 函数上的分段错误

我正在尝试检查第三个命令行是否是数字,所以我做了

int n;
if (!isdigit(argv[3]))
    {
        fprintf(stderr, "n MUST be a number");
        return 4;
    } else 
    {
        n = atoi(argv[3]);
        printf("%i\n",n);
    }
Run Code Online (Sandbox Code Playgroud)

但我得到

Segmentation fault
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是这样做

int n = atoi(argv[3]);
Run Code Online (Sandbox Code Playgroud)

它工作得很好,我真的不明白为什么

c segmentation-fault

0
推荐指数
1
解决办法
2942
查看次数