我想在用户单击按钮时更新assets文件夹中的文件.
我的听众是经典
OnClickListener myUpdateListener = new OnClickListener() {
public void onClick(View v) {
updateAllParams();
}
};
Run Code Online (Sandbox Code Playgroud)
新文件是以这种形式的网址
http://sample.test/android/params.dtf
在文件资产文件夹
params.dtf
Run Code Online (Sandbox Code Playgroud)
但我不知道如何用网站上的新版本替换此文件.
我需要将一个Uri数组传递给另一个活动,传递一个我简单使用的String数组
String[] images=getImagesPathString();
Bundle b = new Bundle();
b.putStringArray("images", images);
Run Code Online (Sandbox Code Playgroud)
但是使用一组Uri
Uri[] imagesUri=getImagesUri();
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为在Bundle中没有方法"putUri(Uri x)"
我怎么能解决这个问题?
我有一个主要活动,其中包含一个列表和一个接收关键字的方法,以便在数据库中进行搜索.
我想AlertDialog在我通过此表单中的动作侦听器单击按钮时,在主活动上显示一个搜索框
OnClickListener searchListener = new OnClickListener() {
public void onClick(View v) {
// ...
}
};
Run Code Online (Sandbox Code Playgroud)
这个对话框应该有一个简单的EditText方框和两个按钮(Search和Cancel),并且必须将String选中的EditText方法传递给表单中的搜索方法:
public void searchWord(String keyword){
// ....search in DB
// ...updateListGUIWithNewValues()
}
Run Code Online (Sandbox Code Playgroud)
此方法是获取新列表值的主要活动,因此活动可以更新GUI列表.
我已经实现了搜索方法和主要活动,但我不知道实现这种对话的正确方法.
我必须获取图库中图像的图像路径,并将其保存为列表,但是不幸的是,如果所选图像太大,则以下代码会使应用程序崩溃(并且不会查看try catch块中的警报)。
private void openImage() {
try{
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.setType("image/*");
startActivityForResult(i, FILE_REQ_CODE);
} catch (RuntimeException e) {
e.printStackTrace();
Alerts.TooLargeImage(LoadImage.this);
}
}
protected void onActivityResult(int requestCode, int resultCode,
Intent intentData) {
try{
Uri tmp = intentData.getData();
String path = tmp.toString();
imagePathList.add(path);
preview.setImageURI(tmp);
FileArchiveManager.saveImagePath(imagePathList);
super.onActivityResult(requestCode, resultCode, intentData);
} catch (RuntimeException e) {
e.printStackTrace();
Alerts.TooLargeImage(LoadImage.this);
}
}
Run Code Online (Sandbox Code Playgroud)
错误日志
java.lang.OutOfMemoryError: bitmap size exceeds VM budget(Heap Size=8135KB, Allocated=3718KB, Bitmap Size=11707KB)
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:694)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:494)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
at android.graphics.drawable.Drawable.createFromStream(Drawable.java:657)
at …Run Code Online (Sandbox Code Playgroud) 我注意到需要手动添加一些库来构建路径(即"Referenced Libraries"),而如果我只是将jar放在\libs文件夹中(即"Android Private Libraries"),其他库工作正常.
例如,如果手动将android支持库添加到构建路径,那么android支持库工作正常,但是原因是什么?
我不明白有什么区别,什么时候我应该选择一个选项而不是另一个选项,反之亦然.
前提:我已经尝试了Stackoverflow中提出的所有解决方案,类似的问题,建议重新构建,清理缓存或添加到样式父项Base.,但没有结果。因此,错误的起因也应该是不同的,因为发生在具有最新API级别28的项目上。
编辑器无法报告以下类无法实例化:
错误堆栈:
java.lang.ClassNotFoundException: android.view.View$OnUnhandledKeyEventListener
at org.jetbrains.android.uipreview.ModuleClassLoader.load(ModuleClassLoader.java:180)
at com.android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.java:61)
at org.jetbrains.android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.java:118)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.jetbrains.android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.java:213)
at android.support.design.widget.AppBarLayout.<init>(AppBarLayout.java:190)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:481)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:264)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:222)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:209)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:337)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:348)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:248)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:394)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:544)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:678)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)
Gradle文件:
apply …Run Code Online (Sandbox Code Playgroud) 如何从库中加载图像作为Android Bitmap对象???
我想在Android中获取当前日期日/月/年最小值:秒,所以我使用了以下代码
String data="";
Calendar c = Calendar.getInstance();
data=c.getTime().toGMTString();
Run Code Online (Sandbox Code Playgroud)
但Eclipse通知我该方法.toGMTString();已被弃用.
如何将当前日期作为格式化字符串获取,避免使用此弃用方法?
我有以下对象
HttpTransport t = AndroidHttp.newCompatibleTransport();
Run Code Online (Sandbox Code Playgroud)
但是整个AndroidHttp类(com.google.api.client.extensions.android.http.AndroidHttp)都被标记为已弃用。
我不知道使用较新的库替换它的类是什么。
如何替换这个过时的电话?
android google-api-java-client google-api-client android-httptransport
如果我调用 DocumentFile.fromTreeUri()主目录并列出其内容,它会DocumentFile按预期返回与目录中包含的文件夹和文件相关的所有对象,但是当我尝试调用DocumentFile.fromTreeUri()其中Uri的文件夹之一时DocumentFile,而不是返回所有DocumentFile相关对象按预期返回到子目录中包含的文件夹和文件,它实际上返回与其根目录上的调用完全相同的内容Uri
例如,我有一个包含 3 个文件的下载文件夹和一个包含 2 个文件的子文件夹,其结构如下
Download
-->file1
-->file2
-->file3
-->Subfolder
----->subfile1
----->subfile2
Run Code Online (Sandbox Code Playgroud)
如果我调用 通过意图回调选择的DocumentFile.fromTreeUri().listFiles()下载文件夹
它会返回我Uricontent://com.android.externalstorage.documents/tree/primary%3ADownload
-->file1
-->file2
-->file3
-->Subfolder
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好,现在如果我尝试获取Uri与调用DocumentFile相关的对象,我得到的显然看起来是正确的,但是如果我调用它,当我列出它的内容时我会再次得到Subfoldermysub.getUri()content://com.android.externalstorage.documents/tree/primary%3ADownload/document/primary%3ADownload%2FSubfolderDocumentFile.fromTreeUri().listFiles()
-->file1
-->file2
-->file3
-->Subfolder
Run Code Online (Sandbox Code Playgroud)
与主下载文件夹 Uri 上的调用完全相同。如果我直接打电话,也会发生同样的情况mysub.listFiles()。这看起来是一个完全不合逻辑的设计。
我怎样才能真正从与其父DocumentFile文件夹相关的对象中正确获取与子文件夹相关的对象DocumentFile,以便子文件夹DocumentFile可以列出其内容而不是其父文件夹的内容?
android ×10
android-10.0 ×1
android-11 ×1
android-date ×1
android-file ×1
calendar ×1
eclipse ×1
search ×1