小编ton*_*ee 的帖子

在Android Dialog中,如何为startActivityForResult设置onActivityResult?

从活动中,我可以轻松设置onActivityResult()和调用startActivityForResult(),一切正常.

现在,我需要startActivityForResult()从Dialog 打电话.但我无法设置onActivityResult(),我相信Dialog不是Activity.

我如何得到结果?

我在对话框中尝试这样的东西,但它失败了.

//create new Intent
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, m_PicUri);
((Activity) getContext()).startActivityForResult(intent, Const.TAKE_PIC_ACTIVITY_RET_CODE);
Run Code Online (Sandbox Code Playgroud)

android android-dialog android-activity

18
推荐指数
2
解决办法
1万
查看次数

GPL代码与专有库的链接是否取决于首先创建的?

Microsoft创建了他们的Windows和MFC DLL库等.开源开发编写新的MFC应用程序并将源代码作为GPL发布.该应用程序必须链接MS DLL /库才能在Windows中运行,但我认为没有人可以争辩说我们现在有权强迫微软的GPL使用他们的DLL.

这是否意味着GPL许可证实际上取决于首先"创建"哪一个? 如果首先创建专有库(例如Windows DLL),这是在没有链接和任何GPL代码的情况下发布的,后来GPL程序与之链接,那么GPL程序无法将专有库转换为GPL,尽管专有代码是" "与GPL代码相关联.

如果是这种情况,公司如此NVidia或RealNetworks可以做以下事情吗?让我们假设他们喜欢将专有的HDDecoding媒体解码引擎库保密,但他们也希望"利用"开源GPL代码来展示他们的硬件.

  1. 他们创建了一个专有的库来进行媒体解码并发布一些示例代码.
  2. 有人(开源开发)创建"插件",链接到这个专有库,用于GPL代码,如XBMC,Mplayer或VLC.
  3. 他们可以争辩说,因为他们首先创建了专有库(就像MS首先创建所有DLL),与其专有代码链接的GPL程序不会将它们转换为GPL代码.

理论上可以说,创建与NVidia专有媒体解码器库链接的GPL vlc.exe文件的开源开发人员违反了GPL许可证.

这是否意味着在Windows中运行的所有GPL程序(如VLC,git,cygwin等)都违反了GPL许可证,因为它们肯定需要与专有的Microsoft Windows库链接才能运行.

案例2:这有什么问题:

NVidia可以创建一个新的硬件抽象库,隐藏最新的图形功能.他们还使用此库创建一个FreeBSD驱动程序,并发布BSD驱动程序的源代码,但不发布库源代码.

有人(Linux开发人员)可以实现与该库链接的linux驱动程序,以便为Linux创建NVidia图形驱动程序.但是由于NVidia没有这样做,他们可以保持库源"隐藏",同时启用"Linux支持".

这当然违反了GPL的精神.

这是否意味着在Windows/Mac/Iphone/PSP3中运行使用GPLed源创建的任何exe也违反了GPL的精神?

linux windows freebsd gpl nvidia

17
推荐指数
2
解决办法
4718
查看次数

Windows Octave无法从剪贴板粘贴文本?

我只是在Windows 10中安装Octave 4.2.0并尝试进行一些机器学习练习.我注意到我无法将正常的剪贴板内容粘贴到Octave.

还有其他人有这个问题吗?如果是这样,任何解决方法?或者它只是程序中的错误?

windows octave

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