我想从列表中删除特定元素.迭代列表时我不想这样做.我想指定必须删除的值.在javadocs中我找到了函数List.remove(Object 0)这是我的代码:
String str="1,2,3,4,5,6,7,8,9,10";
String[] stra=str.split(",");
List<String> a=Arrays.asList(stra);
a.remove("2");
a.remove("3");
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外: java.lang.UnsupportedOperationException
我在for循环中动态地将视图添加到相对布局(比如说容器).我注意到有些奇怪的事情.
当在for循环中的相对布局中添加一个在另一个下面的行时,我看到第一次有几个视图重叠.但是当我锁定并解锁屏幕时,我可以看到视图正确放置.
将动态视图添加到相对布局时,我应该注意一些事情吗?
编辑
我找到了解决方法如何摆脱这个(请检查我的答案).但我很乐意接受一个分析这个问题的答案并告诉我为什么会这样.
我已经简化为代码,评论应该对我正在做的事情有个好主意.
int prev_id=ID_OF_THE_ELEMENT_ABOVE;
/*Empty RelativeView with width and height as MATCH_PARENT and WRAP_CONTENT respectively*/
RelativeLayout container=(RelativeLayout) findViewById(R.id.container);
while(ThereIsData){
/*GET THE DATA HERE THAT HAS TO BE ASSIGNED TO EACH TEXTVIEW*/
...
/* ADD TEXTVIEW #1 below prev_id/
...
...
/*ADD TEXTVIEW #2 (WITH BASELINE OF TEXTVIEW#
...
...
/*TEXTVIEW #3 (BELOW TEXTVIEW#1)*/
...
...
/*TEXTVIEW #4 (BELOW TEXTVIEW#2)*/
...
...
/*ASSIGN THE ID OF TEXTVIEW#3 TO prev_id SO THAT
IN THE NEXT ITERATION TEXTVIEW#1 …Run Code Online (Sandbox Code Playgroud) 这是我生成xml签名的代码:
DOMSignContext dsc = new DOMSignContext
(prk, xmldoc.getDocumentElement());
XMLSignatureFactory fac =
XMLSignatureFactory.getInstance("DOM");
DigestMethod digestMethod =
fac.newDigestMethod("http://www.w3.org/2000/09/xmldsig#sha1", null);
C14NMethodParameterSpec spec = null;
CanonicalizationMethod cm = fac.newCanonicalizationMethod(
"http://www.w3.org/2001/10/xml-exc-c14n#",spec);
SignatureMethod sm = fac.newSignatureMethod(
"http://www.w3.org/2000/09/xmldsig#rsa-sha1",null);
ArrayList transformList = new ArrayList();
TransformParameterSpec transformSpec = null;
Transform envTransform = fac.newTransform("http://www.w3.org/2000/09/xmldsig#enveloped-signature",transformSpec);
Transform exc14nTransform = fac.newTransform(
"http://www.w3.org/2001/10/xml-exc-c14n#",transformSpec);
transformList.add(exc14nTransform);
transformList.add(envTransform);
Reference ref = fac.newReference("",digestMethod,transformList,null,null);
ArrayList refList = new ArrayList();
refList.add(ref);
SignedInfo si =fac.newSignedInfo(cm,sm,refList);
Run Code Online (Sandbox Code Playgroud)
这会将参考验证视为错误,并将核心有效性视为错误.但是当我删除envTrasnform变量ie fac.new Transform("http://www.w3.org/2001/10/xml-exc-c14n#",transformSpec)并使用以下代码执行时:
DOMSignContext dsc = new DOMSignContext
(prk, xmldoc.getDocumentElement());
XMLSignatureFactory fac = …Run Code Online (Sandbox Code Playgroud) 我想为用户提供选择灯光,声音或振动或这三者的组合选项以进行提醒Notification.
在android文档中,我看到有一个选项可以DEFAULT_ALL在所有三种警报方法中使用.
否则就选择其中的任何一个(一个选项DEFAULT_LIGHTS,DEFAULT_VIBRATE,DEFAULT_SOUND).
是否有通过组合例如任何方式SOUND和VIBRATION,但没有LIGHTS和其他组合可制成?
编辑
Notification.Builder's(来自prolink007的回答)方法setDefaults(int default)说:
该值应该是以下一个或多个字段与按位或:DEFAULT_SOUND,DEFAULT_VIBRATE,DEFAULT_LIGHTS 结合使用.
该如何使用?
我有一个MainActivity(它有launchMode = singleTop),我可以从中进行其他活动,例如B和C.现在,我想回到MainActivity一些按钮点击B和C.而且我也想要过渡动画.
这是代码
CODE 1
Intent intent=new Intent(this,MainActivity.class);
Bundle animation= ActivityOptions.makeCustomAnimation(getApplicationContext(), R.animator.translate_left_to_right, R.animator.translate_source_left_to_right).toBundle();
startActivity(intent,animation);
finish();
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,除了MainActivity在旧的代码之上创建一个新实例的事实!我不希望这种情况发生.因此,经过一些研究后我尝试了下面的代码
CODE 2
Intent intent=new Intent(this,ListingActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Bundle animation= ActivityOptions.makeCustomAnimation(getApplicationContext(), R.animator.translate_left_to_right, R.animator.translate_source_left_to_right).toBundle();
startActivity(intent,animation);
finish();
Run Code Online (Sandbox Code Playgroud)
此代码似乎消除了在标志FLAG_ACTIVITY_CLEAR_TOP处理它时创建活动的新实例的问题.但是,现在过渡动画似乎不起作用!
旗帜FLAG_ACTIVITY_CLEAR_TOP不允许任何动画吗?我的问题有什么解决方案?我需要动画转换以及MainActivity不应该创建新的实例.
编辑
这似乎是David Wasser建议的伎俩.
Intent intent=new Intent(this,ListingActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
overridePendingTransition(R.animator.translate_left_to_right,R.animator.translate_source_left_to_right);
Run Code Online (Sandbox Code Playgroud)
但动画不流畅.动画中有一个小故障.我认为那是因为在动画完成之前活动(B或C)被破坏了.我不确定
发布动画文件
translate_left_to_right.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%p"
android:toXDelta="0%p"
android:duration="400"/>
Run Code Online (Sandbox Code Playgroud)
translate_right_to_left.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 我有一个Web应用程序,要求客户端发送它的证书,服务器必须验证证书(即查看颁发者是否是有效的颁发者并出现在服务器的信任库中).这是代码:
FileInputStream fin=new FileInputStream("C:/trustedca");
KeyStore anchors = KeyStore.getInstance("JKS","SUN");
anchors.load(fin, "server".toCharArray());
X509CertSelector target = new X509CertSelector();
FileInputStream fin1=new FileInputStream("C:/client.crt");
CertificateFactory cf=CertificateFactory.getInstance("X.509");
X509Certificate cert=null;
while (fin1.available() > 0)
{
System.out.println("in while---------");
cert =(X509Certificate) cf.generateCertificate(fin1);
}
target.setCertificate(cert);
PKIXBuilderParameters params = new PKIXBuilderParameters(anchors, target);
CertPathBuilder builder = (CertPathBuilder) CertPathBuilder.getInstance("PKIX").build(params);
PKIXCertPathBuilderResult r = (PKIXCertPathBuilderResult) builder.build((CertPathParameters)params);<br>
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid
certification path to requested target<br>
Run Code Online (Sandbox Code Playgroud)
注意:
客户端发送的证书是client.crt,用于签署client.crt证书的证书是密钥库"trustedca"中存在的ca.crt.那为什么要给出这个例外呢?
我有一个jsp页面,使用谷歌图表api以条形图的形式显示数据.这是代码.我想在工具提示中显示此页面(cluetip).
当我在浏览器中直接打开该页面时,我的Google Chart代码效果很好.但是当我尝试通过ajax在工具提示中显示它时,工具提示中没有绘制图表.工具提示是空白的.我怀疑是因为在条形图jsp页面内导入了外部javascript.
<script type="text/javascript" src="https://www.google.com/jsapi"></script
Run Code Online (Sandbox Code Playgroud)
它违反了相同的原产地政策吗?我是对的吗?有没有办法使它工作?
EDIT#1
的谷歌浏览器开发者控制台仅示出了发送到Web页面(它使用谷歌图)的请求,但没有请求被发送到所述外部JavaScript,其设置在页进口(如上所示的外部JavaScript).
编辑#2
我认为没有获取外部JavaScript的请求的原因是
当您通过ajax加载页面时,该页面中的任何脚本标记都不会被执行.所以javascript没有被执行.
在ajax中获取数据后,我们如何手动执行javscript?
编辑#3
实际上我的JSP中有一个包含许多行的表.每一个row contains a LINK; 如果您将鼠标悬停在Google条形图上,图表将显示在工具提示内(每行不同).因此,在悬停每一行时,要获取的图表的URL将不同.I want to pass this URL as a parameter.此URL将在ajax中用于将数据提取到工具提示中.
[1,2]即使hashset未排序,以下代码也会产生输出.
Set set = new HashSet();
set.add(new Integer(2));
set.add(new Integer(1));
System.out.println(set);
Run Code Online (Sandbox Code Playgroud)
这是为什么?
我有一个名为activity_suggestions. 我在其中使用数据绑定。因此文件ActivitySuggestionsBinding被生成。项目编译成功。但是当我尝试运行该项目时,出现此错误
e: error: cannot access ActivitySuggestionsBinding
Run Code Online (Sandbox Code Playgroud)
我正在使用3.1.2带有 kotlin 版本的android studio 1.4.1。任何帮助将不胜感激
编辑
粘贴我的模块级别 build.gradle 和应用级别 build.gradle
模块 Build.gradle
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
dataBinding {
enabled = true
}
..
}
dependencies{
..
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "com.google.dagger:dagger:$rootProject.daggerVersion"
implementation "com.google.dagger:dagger-android:$rootProject.daggerVersion"
implementation "com.google.dagger:dagger-android-support:$rootProject.daggerVersion"
kapt "com.google.dagger:dagger-android-processor:$rootProject.daggerVersion"
kapt "com.google.dagger:dagger-compiler:$rootProject.daggerVersion"
provided 'javax.annotation:jsr250-api:1.0'
implementation "android.arch.lifecycle:runtime:$rootProject.archVersion"
implementation "android.arch.lifecycle:extensions:$rootProject.archVersion"
annotationProcessor "android.arch.lifecycle:compiler:$rootProject.archVersion"
kapt "com.android.databinding:compiler:3.1.2"
..
}
Run Code Online (Sandbox Code Playgroud)
应用程序构建.gradle
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android{
dataBinding{
enabled = true …Run Code Online (Sandbox Code Playgroud) data-binding android kotlin android-databinding android-studio-3.0
我想逐个字符地解析一个字符串。我正在使用 perl 来做到这一点。有什么办法可以从字符串的第一个字符开始,然后一个字符一个字符地循环。现在我已将字符串拆分为一个数组,并且正在遍历该数组。
$var="junk shit here. fkuc lkasjdfie.";
@chars=split("",$var);
Run Code Online (Sandbox Code Playgroud)
但是,不是在其自身之前拆分整个字符串,是否有任何描述符指向字符串的第一个字符然后遍历每个字符?有没有办法做到这一点?
android ×4
java ×4
ajax ×1
certificate ×1
cluetip ×1
data-binding ×1
hashset ×1
javascript ×1
keystore ×1
kotlin ×1
list ×1
perl ×1
pkix ×1
transform ×1
xml ×1