我遇到一个奇怪的问题.我的应用程序可以写一个简单的文本文件到SD卡,有时它适用于一些人,但不适用于其他人,我不知道为什么.
对于某些人来说,如果他们...在文件中放置一些字符等强制关闭它.我似乎无法重现它,因为我没有麻烦,但这是处理文件写入的代码.任何人都可以想到可能导致问题的事情或更好的方法吗?
public void generateNoteOnSD(String sFileName, String sBody)
{
try
{
File root = new File(Environment.getExternalStorageDirectory(), "Notes");
if (!root.exists())
{
root.mkdirs();
}
File gpxfile = new File(root, sFileName);
FileWriter writer = new FileWriter(gpxfile);
writer.append(sBody);
writer.flush();
writer.close();
Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show();
}
catch(IOException e)
{
e.printStackTrace();
importError = e.getMessage();
iError();
}
}
Run Code Online (Sandbox Code Playgroud) 在Java 中转换String为Long(Object)的最佳方法是什么?
Long a = new Long(str);
Run Code Online (Sandbox Code Playgroud)
要么
Long a = Long.parseLong(str);
Run Code Online (Sandbox Code Playgroud)
这里有正确的方法,因为两者似乎具有相同的可读性水平,并且autoboxing在第一种方法中添加额外的步骤是否可以接受?
有没有人设法从用户的语言设置中推断出正确的布局方向(从左到右和从右到左)?
我无法将我的应用程序本地化到阿拉伯语(沙特阿拉伯)语言环境.检测当前的语言环境,加载和安装适当的QTranslator都可以正常工作.(该文本在Linux上看起来很棒!)我遇到的问题是没有从系统区域设置中推断出全局布局方向.
QApplication :: layoutDirection的文档说明(带有我的亮点):
此属性保存此应用程序的默认布局方向.在系统启动时,默认布局方向取决于应用程序的语言.
但事实并非如此:无论系统区域设置如何,布局都设置为Qt :: LeftToRight.我制作了一个显示问题的测试程序.它的主要功能是:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTranslator translator;
translator.load(":/layoutDirection.qm");
a.installTranslator(&translator);
Window w;
w.show();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
它还有一个包含必要图像和翻译文件的资源文件.它的定义如下:
<RCC>
<!-- Arabic resources. The arrow points to the left. -->
<qresource prefix="/" lang="ar">
<file alias="arrow.png">images/arrow-rtl.png</file>
<file alias="layoutDirection.qm">translations/layoutDirection_ar.qm</file>
</qresource>
<!-- English resources. The arrow points to the right. -->
<qresource prefix="/" lang="en">
<file alias="arrow.png">images/arrow-ltr.png</file>
<file alias="layoutDirection.qm">translations/layoutDirection_en.qm</file>
</qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)
Window类的源代码是微不足道的和相应的.ui文件不未设置的layoutDirection为任何部件.在英语(美国)语言环境中运行时,窗口如下所示:
英文截图显示从左到右的布局,正确的翻译和指向右侧的箭头图像http://i26.tinypic.com/25txmz6.png
当在阿拉伯语(沙特阿拉伯)语言环境中运行时,它看起来像这样:
阿拉伯语截图显示错误的从左到右布局,正确的翻译和指向右侧的箭头图像http://i28.tinypic.com/11gu7mx.png …