另一个问题提出了一个有趣的问题:
在Windows中,Java的File.pathSeparatorChar是;,这是正确的.但是,分号实际上也是文件夹或文件名的有效字符.您可以创建Test;Test1在Windows上命名的文件夹.
问题是:如果路径列表可以包含绝对路径和相对路径,您如何确定路径列表中的分号是实际分隔路径还是目录名称的一部分?
我正在寻找在Android手机上备份我的应用数据库的方法.我知道SQLite数据库只是文件,所以我希望能够将文件复制到SD卡(如果有的话).
但是,我不确定如何为备份/恢复准备数据库/活动.
启动时,我的主要活动从数据库中的一个表中读取条目并将其显示在a中ListView.如API的"Notes"示例所示,我有一个游标自动通知该表的更改(ListView当我在表中添加/删除/更新记录时会自动更新).
所以:当我将数据库文件复制到SD卡时,我不应该有问题.但是如果用户想要恢复数据库文件呢?我不能只将文件复制回数据文件夹,我可以(编辑:...当视图显示来自数据库的数据,因此可能保持打开连接)?
实施备份/恢复时,什么是"最佳实践"?我考虑过的一种方法是:
finish()主活动以删除它并关闭数据库连接finish()"恢复"活动这会是要走的路吗?谢谢你的建议!
我正在使用WIX为我的应用程序创建一个安装程序.到目前为止一切正常.但是,我正在尝试在安装期间创建一个新的事件源,但这不会按预期工作.
我已经在这里阅读并理解了这个问题,但我有一个不同的情况,其中给定的解决方案似乎不能正常工作.以下是不同的做法:
WixNetFxExtension来确定.NET 3.5是否作为启动条件安装.WixUtilExtension到,因为它描述了用于32位/ 64位构建配置的东西在这里我想做的是:在进行32位安装时使用32位框架的事件消息文件,否则使用64位框架的事件消息文件.
上面链接的SO问题中的一条评论建议使用以下内容让系统使用32位框架的事件消息文件:
<util:EventSource
Log="Application"
Name="*source name*"
EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll"/>
Run Code Online (Sandbox Code Playgroud)
我修改了这个来解释这两种类型的设置:
<?if $(var.Platform) = x64 ?>
<util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR64]EventLogMessages.dll" />
<?else ?>
<util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" />
<?endif ?>
Run Code Online (Sandbox Code Playgroud)
在文件的开头,相同的<?if ...条件工作,相应地改变产品和foldernames.
代码上面的一些代码我正在使用以下代码来允许.NET Framework检测:
<PropertyRef Id="NETFRAMEWORK35"/>
<PropertyRef Id="NETFRAMEWORK20"/>
<Condition Message="...">
<![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
Run Code Online (Sandbox Code Playgroud)
当我运行安装程序时,一切似乎都有效,也创建了事件源,我也可以从我的应用程序中使用它,但是,我仍然得到未找到事件消息文件的信息.检查注册表我发现消息文件的路径丢失了:
EventMessageFile REG_EXPAND_SZ EventLogMessages.dll
Run Code Online (Sandbox Code Playgroud)
我期望32位/ 64位框架的路径也存在,但它似乎并没有被假定.
我在这做错了什么?
我是Android开发的新手,但我对Java和Eclipse有一些经验.我正在寻找方法来创建可以在我自己的项目中使用的可重用库(控件,帮助器,"标准"活动等),但也可以在不透露源代码的情况下将其分发给其他开发人员.
通常,我将类文件打包到一个JAR文件中,任何其他开发人员都可以将它添加到类路径中并使用打包的类.
我怎么能用Android项目做到这一点?我已经阅读了有关Android库项目的内容,但正如文档所述,它们无法打包到JAR中,但会与引用库项目的项目一起编译.这意味着我还必须分发源代码.
我也读过这篇文章,它询问了同样的问题,但没有提供令人满意的答案.
那么:有没有一种方法来编译和打包一组类和其他文件(包括XML布局,资源和东西),并且只分发那个没有任何源代码的包,这样它就可以被"引用"并像JAR文件一样使用任何其他开发者?
我想要完成一个非常简单的任务,但是到目前为止,SO或其他方面的解决方案都没有帮助我:
我有一个WPF DataGrid,它绑定到一个类型化的数据集.当我单击窗口中的"确定"按钮时,我想检测当前是否存在任何行验证错误.我想显示一个消息框并告诉用户解决这些错误.
我怎样才能做到这一点?
编辑
为了使我的问题更精确:
我要绑定的类型化数据集是一个包含表的简单数据集.这些表是通过调用WCF服务填充的,表中有5个文本列.其中一些列具有长度约束(例如,一列可能只有5个字符).
在ItemsSource我的GridView是在代码中设置如下:
dgvData.ItemsSource = m_dataModel.TableName;
Run Code Online (Sandbox Code Playgroud)
如果我在列中输入一些文本,一切都很好.在所述列中输入5个以上的字符,行旁边会显示红色行错误标记.我还没有进行任何自定义验证.
我可以看到红色感叹号,但是我无法在代码中确定它是否可见.我试过:
HasErrors属性(返回false)Validation.GetHasErrors(dgvData)也回来false了我在这里不知所措 - 必须有一个简单的方法吗?
某些应用程序(例如Dolphin HD Browser)实现了以下功能:
按"后退"会在后排堆叠中跳回.当显示初始视图/活动/片段并按"后退"时,会Toast出现"再次按返回退出"或类似内容.
我该如何实现此功能?
我喜欢做的不是将 zip 文件存储在磁盘上,而是从 MemoryStream 打开它。
我正在查看 DotNetZip 编程示例的文档:请注意,我根据我认为可能需要的内容稍微调整了它。
var ms = new MemoryStream();
using (ZipFile zip = new ZipFile())
{
zip.AddFile("ReadMe.txt");
zip.AddFile("7440-N49th.png");
zip.AddFile("2008_Annual_Report.pdf");
zip.Save(ms); // this will save the files in memory steam
}
// now what I need is for the zip file to open up so that
the user can view all the files in it. Not sure what to do next after
zip.Save(ms) for this to happen.
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我需要对图像应用模糊滤镜.然而,效果应该变得更强,像素越远离用户可以在图像中自由绘制的线.
让我们假设用户绘制的线条正好在中间水平分割图像.然后沿着这条线,渐变的效果应该是0%,从这条线的上下一半,效果应该是50%等.(如果您的机器上有Picasa,对椭圆渐变有类似的效果)
现在我想我可能会尝试下面的内容(到目前为止我还没有 - 我只是在这里收集想法):我可能会创建一个100%模糊的图像版本,并使用alpha-mask将其与原始图像相结合.这个alpha-mask将由简单的黑/白线性渐变创建.
你认为这可行吗?是否可以直接使用过滤器实现其他实现?
我开始进入Mac OS X开发,我遇到的问题是我在过去三个小时内无法弄清楚的解决方案(我已经google了很长时间).
测试应用程序:
我有一个应用程序,它有一个MainMenu.xib显示窗口 - 到目前为止一直很好.我创建了另一个XIB和NSViewController子类,其中包含一个我想在主窗口中显示的视图.我使用以下代码加载视图并将其插入主窗口:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
self.compartmentViewController = [[SelectCompartmentViewController alloc] initWithNibName:@"SelectCompartmentViewController" bundle:nil];
[self.compartmentViewController.view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[self.compartmentViewController.view setFrame:[self.contentArea bounds]];
}
Run Code Online (Sandbox Code Playgroud)
compartmentViewController是一个属性,self.contentArea是主窗口上的自定义视图 - 就像一个占位符.
这到目前为止工作正常.
问题
然后我决定查看本地化功能.我已经本地化了几个字符串和两个XIB.起初,由于没有看到任何本地化的值,我有点困惑.直到我发现我必须清理项目 - 从那时起我在运行时遇到以下错误:
2013-03-19 22:48:59.763 Vocab Box [10160:303]无法找到命名的nib:捆绑路径中的SelectCompartmentViewController :( null)
2013-03-19 22:48:59.764 Vocab Box [10160:303] - [ NSViewController loadView]无法加载"SelectCompartmentViewController"笔尖.
建议的解决方案我试过无济于事
救命
我需要在SQL 2012中确定数据库的排序规则,并从中提取区分大小写.我该怎么做?在我知道collasion区分大小写后,我需要在C#中使用它.SQL Server collasion区分大小写和C#之间是否存在映射?
我目前正在开发一个将 iOS 13 设置为部署目标的 iOS 应用程序。我在整个应用程序中使用了一些 SF 符号。现在,由于 iOS 14 和新版本的 XCode 已经可用,我收到了关于我的一个符号被弃用的警告(paragraphsign应该使用而不是paragraph),但是,当我paragraphsign在 Interface Builder中将图像更改为收到一条错误消息,指出此符号仅在 iOS 14 中可用...
现在,我目前的解决方案是忽略警告,而是使用
if #available(iOS 14, *)
{
...
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中用新版本替换所有已弃用的图像。
我的问题是:有没有办法直接在 Interface Builder 中执行此操作以避免警告?类似于“在 iOS 14 中使用它,而在以前的版本中使用它”?
所以我正在为 Android 创建一个材料设计应用程序。我使用的是新的 Toolbar 而不是 ActionBar。在一项活动中,我想在工具栏下方显示选项卡。这对纵向和横向模式都适用,但在横向模式下,选项卡居中且不覆盖视图的整个宽度。
这是设计使然还是我需要知道什么?
这是我的活动的布局:
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:height="?attr/actionBarSize"
android:background="@color/primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:titleTextAppearance="@style/ToolbarTitle"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
<android.support.design.widget.TabLayout
android:id="@+id/toolbar_tabs"
android:height="?attr/actionBarSize"
android:background="@color/primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways" />
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)
以下代码将其初始化为onCreate:
// Set up the toolbar
this.setSupportActionBar(mToolbar);
ActionBar ab = this.getSupportActionBar();
if (ab != null)
{
ab.setDisplayHomeAsUpEnabled(true);
ab.setHomeButtonEnabled(true);
ab.setDisplayShowTitleEnabled(true);
}
// Set up the pager and tabs from the pager
mTabViewPager.setAdapter(mTabPagerAdapter);
mTabLayout.setupWithViewPager(mTabViewPager);
Run Code Online (Sandbox Code Playgroud)
这mTabPagerAdapter是一个寻呼机适配器,用于保存要由文档中的选项卡显示的页面。