Articles of java

错误方法太复杂,无法通过数据streamalgorithm进行分析

这是造成问题的方法。 我正在创build一个使用年龄,体重和身高来计算最终结果的BMI计算器。 我不确定我的逻辑是错误的还是还有其他问题正在进行 public void calculateClickHandler(View view) { String Outcome; Outcome = null; age = Float.parseFloat(txtHowOld.getText().toString()); feet = Float.parseFloat(txtFt.getText().toString()); inches = Float.parseFloat(txtIn.getText().toString()); pounds = Float.parseFloat(txtWeight.getText().toString()); height = (feet * 12) + inches; double BMI1 = (pounds / (height * height)) * 703.0; if (btnF.isChecked()) { if (age >= 20 && age <= 40) { if […]

在MainActivity的ActionBar中返回button

除了MainActivity之外,我还为所有活动实施了一个Back-Button。 我的问题是,我也有这个MainActivity的后退button。 希望我已经input了正确的类: import android.support.v4.app.NavUtils; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getActionBar().setDisplayHomeAsUpEnabled(true); […] } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); […]

内存泄漏的实际例子

我一直在努力识别内存泄漏。 我想我的项目循环进度视图中有几个内存泄漏。 我的猜测之一是我有内部类FadeRunnable内存泄漏。 但说实话,我不知道如何确定这是否是问题的根源。 那么,当我做通常的情况下,切换方向,我看到增加的内存使用情况如下所示。 如果我注释掉FadeRunnable类的用法,步骤会更小( 但仍然存在,所以我想这不是唯一的泄漏 ) 一旦我分析堆转储,我看到一些东西。 但实际上我不知道这些价值是什么意思。 我做的事情是 多次改变方向 打开堆转储并按“保留大小” 现在当我点击“CircularProgressView”时,我在右边看到了8行,我想这意味着有8个“CircularProgressView”实例泄漏,并且在内存中孤立地存在。 它是否正确? 如果是这样,我怎么能find转储信息( 我猜在下面的窗格中的某个地方 )保存/保存此对象的位置。 我很想有一个一步一步的解释如何找出是否和哪个对象泄漏一些内存。 所有怀疑视图的代码都可以在这个类中find。 https://github.com/momentummodules/CircularProgressView/blob/master/circularprogressview/src/main/java/momentum/circularprogressview/CircularProgressView.java 但也可以随时查看完整的项目,以获得更深入的洞察力,如果你想玩它。 提前致谢! UPDATE 上面的代码链接显示了mem-leaking内部类的固定代码。 下面的代码片段显示了永远不会这样使用的原始的泄漏代码 /** * Mem-leaking code, for fixed code see repository link * https://github.com/momentummodules/CircularProgressView/blob/master/circularprogressview/src/main/java/momentum/circularprogressview/CircularProgressView.java */ public class CircularProgressView extends View { … private Thread fadeThread = null; … … class FadeRunnable […]

Android Studio 2.0 – NoSuchAlgorithmException:SHA256WITHDSA签名不可用

我正在运行Android Studio 2.0预览版3b,并试图使用“生成”菜单中的“生成签名APK …” 。 我收到以下错误消息窗格: :wear:packageRelease FAILED FAILURE: Build failed with an exception. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':wear:packageRelease'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) … Error:org.gradle.tooling.BuildException: SHA256WITHDSA Signature not available: try using a newer JVM to build your application. at com.android.build.gradle.tasks.PackageApplication.doFullTaskAction(PackageApplication.java:224) at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:82) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) … 70 more Error:java.security.NoSuchAlgorithmException: SHA256WITHDSA […]

Glide是否有加载PNG和SVG的方法?

我正在使用Glide将一些图像asynchronous加载到一些ImageView ,我知道它可以处理像PNG或JPG这样的图像,因为它可以处理SVG 。 事实上,据我所知,我加载这两种图像的方式不同。 喜欢: 加载“正常”的图像 Glide.with(mContext) .load("URL") .into(cardHolder.iv_card); 加载SVG GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> requestBuilder = Glide.with(mContext) .using(Glide.buildStreamModelLoader(Uri.class, mContext), InputStream.class) .from(Uri.class) .as(SVG.class) .transcode(new SvgDrawableTranscoder(), PictureDrawable.class) .sourceEncoder(new StreamEncoder()) .cacheDecoder(new FileToStreamDecoder<>(new SVGDecoder())) .decoder(new SVGDecoder()) .listener(new SvgSoftwareLayerSetter<Uri>()); requestBuilder .diskCacheStrategy(DiskCacheStrategy.NONE) .load(Uri.parse("URL")) .into(cardHolder.iv_card); 如果我尝试使用第一种方法加载SVG,则不起作用。 如果我尝试使用第二种方法加载PNG或JPG,则它也不起作用。 有没有一种通用的方式来加载两个图像types使用Glide? 在我下载之前,从中获取这些图像的服务器不会告诉我图像types。 这是一个REST服务器,资源将以"http://foo.bar/resource"的方式检索。 知道图像types的唯一方法是读取HEAD响应。

JVM与Dalvik和/或ART有什么不同?

首先,我觉得我可能把这个问题的题目写得不好,但是我想不出合适的话,所以请随意提出一个编辑,我会做出来,这样问题就更具教育意义和相关性。 我知道javax.Swing根本不能用于Android项目,我已经接受了这个,学习了基于Android XML的UIdevise,但是出于好奇,我想知道为什么 。 我意识到电话的屏幕尺寸可能是Swing不能很好地处理的,但是如何阻止开发人员仅仅导入javax.Swing包(除了Android Studio之外根本就不让它发生)变形和可怕的Swing窗口可能在Android设备屏幕上? 我也意识到,AWT和SWT也必须导入,但同样的问题也适用于这些包。 我认为我对这个问题的理解可能真的来自于对Java虚拟机和Android等价物(Dalvik仍然使用,或者他们是否将冷火鸡转换为ART?)缺乏了解。 与往常一样,任何信息或阅读您可以提供的主题非常感谢。 我真的想更多地了解JVM,Dalvik和ART如何工作的基础知识。

RecyclerView.ViewHolder总是必须是一个内部类吗?

我有两个RecyclerView.Adapter使用完全相同的RecyclerView.ViewHolder作为内部类。 我想摆脱代码重复,并使这些ViewHolder免费,单独的类,所以现在全新的类可以用于任何RecyclerView.Adapter s。 但是,我遇到了很多麻烦,例如访问适配器对象的困难。 getAdapterPosition()总是返回-1 。 所以我改变了主意,做了一个由这些适配器扩展的超级RecyclerView.Adapter类,并将ViewHolder放在超类中,以便这些适配器可以从子类中使用它。 但是我想知道ViewHolder是否必须是内部类。 这让我很烦恼。 请不要指教我结合适配器类,他们是完全不同的ViewHolder只是一个特殊的viewType可以出现在任何RecyclerView 我正在等待你的更好的方法,让我感觉更好。 问候。

NDK支持是一个实验性function,Android Studio中还没有支持所有的用例错误?

我想将NDK集成到Android Studio中,但是我面对NDK支持是一个实验性function,并且用例还不支持error.I已经使用SDKpipe理器下载了NDK,并且NDK被触发了C:\ Users \ TheAppData \ Local \的Android \ SDK \ NDK束。 我还为Java和C ++交互创build了NativePanorama java类。 这是NativePanorama.java类的代码 public class NativePanorama { public native static void processPanorama(long[] imageAddressArray, long outputAddress); { } } 我在terminal中使用了javah命令,为NativePanorama java类中的processPanorama方法创build相应的C ++头文件。 这里是创build的com_example_the_myapplication_NativePanorama.h c ++头文件。 /* DO NOT EDIT THIS FILE – it is machine generated */ #include <jni.h> /* Header for class […]

如何使用固定长宽比视图膨胀视图

在我的应用程序中,我有一个滚动视图。 在应用程序的生命周期中,我dynamic地向滚动视图添加新的视图。 我可以添加意见很less的问题,但我不能得到正确的尺寸。 这里是我想要的布局的草图: 在图像中我有一个屏幕的尺寸Width的Height 。 它包含一个HorizontalScrollView (或者也许是一个RecyclerView但我不知道如何使用这个),当视图添加到它时,它将会增长。 我想要添加到视图中的每个项目的宽度等于屏幕高度的五分之一,并且具有匹配的高度。 我可以做这个工作,如果我硬编码充气视图的宽度,但是,我的看法不会在所有手机上的纵横比相同。 注意:我尝试使用PercentRelativeLayout,但是我无法使其工作。 不知道如何解决这个问题…任何想法? 关于赏金的说明 :我将接受Java或C#(Xamarin)的答案! 我的项目是在Xamarin,所以它会很好,如果它的工作,或者如果它可以很容易地适应工作在C#

如何使用ThreeTenABP将ZonedDateTime / OffsetDateTime转换为date?

使用ThreeTen Android Backport库,将ZonedDateTime或OffsetDateTime转换为旧式的java.util.Date实例最简单的方法是什么? 如果我拥有完整的Java 8 libs,那么这当然就是做这件事的方法( 就像这个问题一样 ): Date.from(zonedDateTime.toInstant()); 但是我不能在Android上使用它; 特别是Date.from(Instant instant)缺失。