为多种语言放置不同的string.xml文件非常容易,例如:
English
Values
String.xml
Arabic
Values-ar
String.xml
Run Code Online (Sandbox Code Playgroud)
但它仅在设备语言更改时有效.我的方案是我必须在应用程序中加载用户选择的语言,不同于在设备中选择的语言,那么如何加载不同的String.xml文件?
我正在尝试Google+在我的Android应用程序中实现身份验证.为了做到这一点,我已经遵循了这个Google教程.
当出现权限对话框时,如果用户单击" 登录",则一切正常.但是,如果他单击" 取消",对话框将关闭几秒钟,然后显示备份.这种情况永远存在,因此无法正确取消操作.为什么会这样?
这是相关的代码,改编自教程:
/* Request code used to invoke sign in user interactions. */
private static final int RC_SIGN_IN = 0;
/* Client used to interact with Google APIs. */
private GoogleApiClient mGoogleApiClient;
/* Track whether the sign-in button has been clicked so that we know to resolve
* all issues preventing sign-in without waiting.
*/
private boolean mSignInClicked;
/* Store the connection result from onConnectionFailed callbacks so that we …Run Code Online (Sandbox Code Playgroud) 我正在尝试拍照并将其保存到应用程序的内部缓存中,因为它一上传就会被删除.我使用以下代码来创建文件:
public static File createInternalCacheImageFile(Context context, String imageFileName) throws IOException {
return File.createTempFile(
imageFileName,
context.getString(R.string.image_extension),
context.getCacheDir()
);
}
Run Code Online (Sandbox Code Playgroud)
使用具有root权限的文件管理器进行检查表明文件已正确创建.然后我使用以下代码启动相机意图,通常会将图像保存到我创建的文件中:
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile));
activity.startActivityForResult(takePictureIntent, REQUEST_CODE_IMAGE_CAPTURE);
Run Code Online (Sandbox Code Playgroud)
显示摄像机活动,在接受图片后,活动结果为0.查看logcat以下内容时显示:
07-21 13:19:51.093 12889-12889/? E/CAM_StateSavePic? exception while saving result to URI: Optional.of(file:///data/data/org.serengetitracker.androidapp/cache/image_random_205854910-2018234447.jpg)
java.io.FileNotFoundException: Permission denied
at android.os.Parcel.openFileDescriptor(Native Method)
at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:253)
at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:199)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:916)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:686)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:662)
at com.android.camera.captureintent.state.StateSavingPicture.onEnter(StateSavingPicture.java:84)
at com.android.camera.captureintent.stateful.StateMachineImpl.jumpToState(StateMachineImpl.java:62)
at com.android.camera.captureintent.stateful.StateMachineImpl.processEvent(StateMachineImpl.java:110)
at com.android.camera.captureintent.state.StateOpeningCamera$9.onClick(StateOpeningCamera.java:307)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) …Run Code Online (Sandbox Code Playgroud) 我在Java中使用AspectJ来记录对某些方法的调用.我看过网上但无法找到答案:
当两个@Around建议与方法匹配时会发生什么?
具体来说,我正在使用两个@Around建议,如下所示:
@Around("condition1() && condition2() && condition3()")
public Object around(ProceedingJoinPoint point) {
return around(point, null);
}
@Around("condition1() && condition2() && condition3() && args(request)")
public Object around(ProceedingJoinPoint point, Object request) {
...
result = (Result) point.proceed();
...
}
Run Code Online (Sandbox Code Playgroud)
point.proceed()如果这两个建议都匹配,这会导致被调用两次(实际方法被调用两次)吗?
我正在使用 C# 2010 创建一个应用程序,其目的是复制具有指定扩展名的文件。它使用 .NET Framework 3.5 。
我有以下代码:
private void GetFiles()
{
bool validext;
foreach (string filePath in Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories))
{
//Check if the file has a specified extension
validext = false;
foreach (string extension in ext)
if (HasExtension(filePath, extension))
{
validext = true;
break;
}
if ((validext && mode == 1) || (!validext && mode == 2))
{
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
to_copy.Add(filePath);
}
}
totalcount = to_copy.Count;
}
Run Code Online (Sandbox Code Playgroud)
问题出在这个命令上:
Directory.CreateDirectory(TrimFile(filePath));
Run Code Online (Sandbox Code Playgroud)
它不会引发任何异常,它应该创建的目录路径是有效的,并且应用程序以管理员权限运行。然而,该目录并未创建。网上搜索没有给我任何答案,所以我的问题是:
为什么Directory.CreateDirectory(TrimFile(filePath));不工作?
编辑:我已将 FileTrim 函数替换为Path.GetDirectoryName(filePath).
我正在Android中开发一个片段.在我的标签中有四个片段,其中一个是地图片段.
使用此地图片段:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)
任务完成得很好.
问题是当用户滑动时,地图片段上显示黑线1秒钟.我在网上对此进行了研究,但未找到预防此方法的方法?为什么会发生这种情况,我该如何解决?
我正在开发一个应用程序,允许拍照并将它们保存到SD卡上的目录中.它在大多数设备上运行良好,但我在很少的设备上收到此错误:
08-26 15:29:11.712 11925 11925 E AndroidRuntime: FATAL EXCEPTION: main
08-26 15:29:11.712 11925 11925 E AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { act=inline-data dat=file:///storage/emulated/0/.MyImgs/IMG_20132926032905.jpg typ=image/jpeg (has extras) }} to activity {com.example.myApp/com.example.myApp.Com}: java.lang.NullPointerException
08-26 15:29:11.712 11925 11925 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:3403)
08-26 15:29:11.712 11925 11925 E AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:3446)
08-26 15:29:11.712 11925 11925 E AndroidRuntime: at android.app.ActivityThread.access$1100(ActivityThread.java:150)
08-26 15:29:11.712 11925 11925 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1324)
08-26 15:29:11.712 11925 11925 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99)
08-26 15:29:11.712 11925 11925 E …Run Code Online (Sandbox Code Playgroud) String b = "5A";
int bConv = Integer.parseInt(b, 16);
char $2 = bConv;
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我可能会失去精度错误警告.
我有一个具有DataGridView作为其主要组件的表单.当用户最大化表单时,我需要调整DGV的大小.
正如我在网上看到的,这不能以编程方式完成.
该程序是用C#编写的,并使用WinForms.你会怎么做?
我想使用SaveFileDialog控件保存文件。为什么文件必须已经存在才能保存?
这是我正在使用的代码:
string month = dateTimePicker1.Value.Month.ToString();
string year = dateTimePicker1.Value.Year.ToString();
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = @"C:\";
saveFileDialog1.Title = "Save Sql Files";
saveFileDialog1.FileName = "MysqlBackup-"+month+"-"+year+".sql";
saveFileDialog1.CheckFileExists = true;
saveFileDialog1.DefaultExt = "Sql";
saveFileDialog1.Filter = "Sql files (*.Sql)|*.Sql";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
// Here is the error. After typing in the filename, when I click OK it gives me an error stating that the file does not exist.
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个将被世界各地的人们使用的Java应用程序.一项功能要求它显示澳大利亚墨尔本当前时间.
我找到了这个答案,并按如下方式调整了代码,但它返回了我当前的时间(如预期的那样).它使用Apache Commons Net库:
try {
String TIME_SERVER = "time-a.nist.gov";
NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
TimeInfo timeInfo = timeClient.getTime(inetAddress);
long returnTime = timeInfo.getMessage().getTransmitTimeStamp().getTime();
return new Date(returnTime);
} catch (Exception e) {
System.out.println(e.getMessage());
return null;
}
Run Code Online (Sandbox Code Playgroud)
如何修改此代码以返回墨尔本的时间,而不是我的时间?我也愿意接受其他解决方案来解决这个问题.
谢谢!
编辑:
根据Jon的建议,我使用了JodaTime库并构建了以下代码来解决问题.通过将澳大利亚/墨尔本更改为此处找到的任何时区,它可以用于其他时区.
try {
//Get the time for the current time zone.
String TIME_SERVER = "time-a.nist.gov";
NTPUDPClient timeClient = new NTPUDPClient();
InetAddress inetAddress = InetAddress.getByName(TIME_SERVER);
TimeInfo timeInfo = timeClient.getTime(inetAddress);
long returnTime …Run Code Online (Sandbox Code Playgroud)