小编Ash*_*win的帖子

从java中的列表中删除值<String>会抛出java.lang.UnsupportedOperationException

我想从列表中删除特定元素.迭代列表时我不想这样做.我想指定必须删除的值.在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

java list

8
推荐指数
1
解决办法
1万
查看次数

在for循环中动态添加视图会导致偶然定位 - Android

我在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)

android

8
推荐指数
2
解决办法
1129
查看次数

添加c14n独占变换时,Xml签名无效

这是我生成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)

java xml transform xml-signature

7
推荐指数
1
解决办法
5712
查看次数

设置振动,灯光或声音的组合,以便在android中进行通知

我想为用户提供选择灯光,声音或振动或这三者的组合选项以进行提醒Notification.

在android文档中,我看到有一个选项可以DEFAULT_ALL在所有三种警报方法中使用.

否则就选择其中的任何一个(一个选项DEFAULT_LIGHTS,DEFAULT_VIBRATE,DEFAULT_SOUND).

是否有通过组合例如任何方式SOUNDVIBRATION,但没有LIGHTS和其他组合可制成?


编辑

Notification.Builder's(来自prolink007的回答)方法setDefaults(int default)说:

该值应该是以下一个或多个字段与按位或:DEFAULT_SOUND,DEFAULT_VIBRATE,DEFAULT_LIGHTS 结合使用.

该如何使用?

android android-notifications

7
推荐指数
3
解决办法
2万
查看次数

使用FLAG_ACTIVITY_CLEAR_TOP时是否无法进行过渡动画?

我有一个MainActivity(它有launchMode = singleTop),我可以从中进行其他活动,例如BC.现在,我想回到MainActivity一些按钮点击BC.而且我也想要过渡动画.

这是代码

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)

android android-intent android-animation

7
推荐指数
2
解决办法
2519
查看次数

在java中验证证书会引发异常 - 无法找到所请求目标的有效证书路径

我有一个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.那为什么要给出这个例外呢?

java certificate keystore x509certificate pkix

6
推荐指数
1
解决办法
7987
查看次数

使用谷歌图表api并通过ajax在cluetip中显示内容

我有一个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中用于将数据提取到工具提示中.

javascript ajax google-visualization cluetip

6
推荐指数
1
解决办法
1178
查看次数

这个HashSet如何产生排序输出?

[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)

这是为什么?

java hashset

6
推荐指数
2
解决办法
3874
查看次数

无法访问活动绑定android

我有一个名为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

6
推荐指数
1
解决办法
3674
查看次数

在 Perl 中逐字符解析字符串

我想逐个字符地解析一个字符串。我正在使用 perl 来做到这一点。有什么办法可以从字符串的第一个字符开始,然后一个字符一个字符地循环。现在我已将字符串拆分为一个数组,并且正在遍历该数组。

$var="junk shit here. fkuc lkasjdfie.";
@chars=split("",$var);
Run Code Online (Sandbox Code Playgroud)

但是,不是在其自身之前拆分整个字符串,是否有任何描述符指向字符串的第一个字符然后遍历每个字符?有没有办法做到这一点?

perl

5
推荐指数
1
解决办法
996
查看次数