小编Bor*_*jev的帖子

在视图级别禁止lint警告

我从lint得到以下错误:InconsistentLayout.有时这是预期的,因为平板电脑和手机布局不同.这就是lint警告的最后几句话的原因:

有有情况下,这是故意的.例如,您可能有一个专用的大型平板电脑布局,其中添加了一些额外的小部件,这些小部件在布局的电话版本中不存在.只要访问布局资源的代码小心处理这个问题,它就是有效的.在这种情况下,您可以针对给定的额外或缺少视图或整个布局禁止此lint检查

完美,我同意.我想要抑制警告,但仅限于我获取它的特定视图,而不是包含它的整个布局(以避免隐藏无意的错误).我lint.xml在maven在构建时使用的项目中的文件中配置lint suppress警告.

我在布局级别上抑制了warnigns,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="InconsistentLayout" >

        <ignore path="res/layout/my_layout.xml" />
    </issue>
</lint>
Run Code Online (Sandbox Code Playgroud)

如何声明lint只忽略我验证的视图ID可以不一致?

android lint suppress-warnings maven

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

线程"main"中的异常java.lang.UnsatisfiedLinkError:无法加载SWT库

我遇到以下错误的原因是什么:

线程"main"中的异常java.lang.UnsatisfiedLinkError:无法加载SWT库.

我在Ubuntu 9.04 Jaunty上使用Eclipse 3.5 SE.

我该如何解决这个错误?

java eclipse ubuntu

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

更改字段值时的HashSet行为

我刚刚做了以下代码:

import java.util.HashSet;
import java.util.Set;


public class MyClass {

    private static class MyObject {
        private int field;

        public int getField() {
            return field;
        }

        public void setField(int aField) {
            field = aField;
        }

        @Override
        public boolean equals(Object other) {
            boolean result = false;
            if (other != null && other instanceof MyObject) {
                MyObject that = (MyObject) other;
                result = (this.getField() == that.getField());
            }
            return result;
        }

        @Override
        public int hashCode() {
            return field;
        }
    }

    public static void main(String[] args) …
Run Code Online (Sandbox Code Playgroud)

java collections hashset data-structures

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

如何为Android视图实现Decorator模式

注意:实际问题在本What my questions are节中.提供其他部分是为了更好地概述问题.

任务

我想使用Decorator设计模式来装饰Android视图.对于我的问题,我将以装饰ViewPager为例,但我相信解决方案会更加通用.

我为什么需要它

我希望能够在我的不同解决方案中对标准视图重用不同的扩充.例如,现在我有定时器切换ViewPager,ViewPager当用户到达终点时通知我.通过这个解决方案,我的目标是ViewPager在我的下一个解决方案中添加自动切换通知(即将我当前的扩展名组合在一起).装饰者模式正是为此而已.

我目前的方法是什么

  • 我已经做完了有针对性ViewPager的ViewPagerDecorator
  • 我也做了装饰器的所需扩展 - AutoSwitchViewPager和NotifyOutOfBoundsViewPager(基于此).现在我甚至可以做到

    new AutoSwitchViewPager(new NotifyOutOfBoundsViewPager(viewPager)).

  • 现在我想弄清楚如何在布局中放置这个运行时创建的视图.我目前正在试图弄清楚我是否可以将ViewPager布局传播其xml属性替换为装饰视图.

我的问题是什么

  • 有没有办法将xml属性从布局定义的视图复制到运行时构造的(LayoutParameters至少)
  • 另一种方法是使用ViewStub,但我没有找到一种方法来ViewStub使用完全运行时构造的东西(不使用xml布局)进行充气.有这样的方式吗?

我读了什么

我偶然发现了这些相关的资源:

  • 装饰Android视图 - 这并不是完全装饰视图,因为装饰器不会订阅视图的不同事件.装饰需要通过特殊的触发方法触发.然而,我所瞄准的装饰确实需要充当装饰类的完整扩展.
  • 装饰模式Android - 这里的装饰再次通过特殊方法触发
  • 装饰一个Android活动 - 我对ComonsWare的所有尊重,我离他的陈述很远.另一方面,我相信Android中的视图允许您比活动更多的运行时修改,所以我的情况仍然是合理的.

android design-patterns decorator android-custom-view

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

Angular + Google Analytics:使用新分析跟踪页面浏览量

我有多个角度应用程序,它们一直在跟踪页面视图,其逻辑类似于本博客中描述的逻辑。

我也会在这里添加相关的代码片段以避免第三方引用。

在每个页面的头部添加 gtag 依赖项(Google Analytics 文档中也对此进行了描述):

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'GA_MEASUREMENT_ID');
</script>
Run Code Online (Sandbox Code Playgroud)

对路由器事件作出反应,以便告诉 GA 使用新的页面标题,尽管 Angular 应用程序是 SPAa:

export class AppRoutingModule {
  constructor(public router: Router) {
    this.router.events.subscribe(event => {

        if (event instanceof NavigationEnd) {
            gtag('config', 'GA_MEASUREMENT_ID',
                {'anonymize_ip': true},
                {
                    'page_path':
                    event.urlAfterRedirects
                }
            );
        }

    });
  }
}
Run Code Online (Sandbox Code Playgroud)

显然,我GA_MEASUREMENT_ID用我的真实跟踪 ID 替换。因此,这在我之前拥有“UA-xxxxxxx”(通用分析)跟踪 ID 的所有情况下都有效。现在,我第一次获得 Google …

google-analytics angular google-analytics-4

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

自定义Android Manifest的各个部分

我正在开发Android应用程序,我想针对该应用程序在市场上针对不同的语言发布几种不同的apk(每种语言都包含大量文件,并且我想避免使用所有语言包创建一个大型apk)。

因此,我需要为每种语言自定义一些清单文件:例如,应用程序的软件包以及可能的应用程序版本等。我知道如何对清单进行模板化,以便可以在文件(请参阅此帖子)。问题是我使用蚂蚁来准备生产apk,但是否则我将使用Eclipse进行开发,因此我的项目也需要在IDE中工作。Eclipse需要完整的Manifest文件,并且就我所知,我将不了解我将用于蚂蚁构建的模板(请有人证明我错了)。

我的问题是我想避免维护两个清单文件,这些清单文件在很大程度上是相同的(一个模板化,而一个完整的Eclipse)。目前,我可以想到两种可能的方法,但是我不知道如何实现它们:

  • 在清单文件中使用某种定义注入:如果我能够在AndroidManifest文件的主体中注入某些xml文件,则可以将同一部分保留在一个xml部分中,并仅自定义差异点
  • 如果可以将Eclipse配置为使用一些蚂蚁任务序列来构建Android项目,而不是使用预构建例程,那么我也许可以集成在IDE中构建生产apk的方式。

如果有人知道如何完成以上两个步骤中的任何一个,或者有其他任何想法可以解决我的问题,请帮助:!

ant android android-manifest

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

Kd树:仅存储在叶子中的数据与存储在叶子和节点中的数据

我正在尝试实现一个Kd树来执行最近邻居并在C++中近似最近邻搜索.到目前为止,我遇到了最基本的Kd树的2个版本.

  1. 数据存储在节点和叶子中的那个,例如这里
  2. 数据仅存储在叶子中的数据,例如此处

它们似乎基本相同,具有相同的渐近性质.

我的问题是:为什么选择一个而不是另一个?

到目前为止,我认为有两个原因:

  1. 在节点中存储数据的树也较浅1级.
  2. 仅在叶子中存储数据的树具有更容易实现的delete data功能

在决定选择哪一个之前,我还应该考虑其他一些原因吗?

c++ computer-science kdtree

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

使用obtainStyledAttributes获取多个样式属性

我试图android从我的代码中获取命名空间的几个样式属性.在这里,我附上相关的摘录.AttributeSet attrs是传递给任何自定义的参数TextView.

private static final int[] ATTRS = new int[] { android.R.attr.textSize,
   android.R.attr.text, android.R.attr.textColor,
   android.R.attr.gravity };

private void processAndroidAttributes(final Context context,
   final AttributeSet attrs) {
   final TypedArray a = context.obtainStyledAttributes(attrs, ATTRS);
   try {

       final String text = a.getString(1);
       myTextView.setText(text);
       final float textSize = a.getDimensionPixelSize(0, DEFAULT_TEXT_SIZE);
       myTextView.setTextSize(textSize);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我想阅读4中描述的4个属性int[] ATTRS.如你所见,我把它textSize作为这个数组的第一个元素.原因很简单 - 如果我将它换成数组中的第二位,则其值无法正确读取(而是加载提供的默认值).另一方面,文本正确地加载到ATTRS我放置它的数组中的任何位置.我不敢跟的位置偏好试验gravity和textColor,但这种排列他们不工作.

有人可以解释为什么获得行为的不稳定行为?

android android-custom-view android-custom-attributes

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

使用自定义意图操作仅在特定应用程序上下文中启动活动

我需要使用意图过滤器指定我的登录活动:

    <activity
        android:name=".view.LoginActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="com.example.sdk.LOGIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是我正在开发一个我想在几个项目中使用的 SDK,这是我能弄清楚如何通知 SDK 是登录活动的最好方法,而它是仅在 app 模块中定义。

在我做这样的声明后,我开始像这样的登录活动(在库和应用程序中):

    Intent intent = new Intent();
    intent.setAction("com.example.sdk.LOGIN");
    context.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

有可能在同一设备上同时安装两个或多个依赖于同一个 SDK 的应用程序。如果我理解正确,在这种情况下,在这些应用程序中的每一个中,Activity start 将启动一个随机登录活动(应用程序 A 中的调用可能会启动应用程序 B 的登录)。

  1. 我对自定义意图过滤器的工作原理的理解是否正确?
  2. 有没有办法告诉应用程序 A 中的调用只使用应用程序 A 中的意图过滤器声明

也欢迎提出重用登录相关逻辑的替代方法的建议,而不是依赖意图过滤器。

android intentfilter android-intent android-activity android-intent-chooser

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

Javascript element html without children

In my javascript code I need to get the definition of an element, but without its content - neither text nor children.

E.g. for:

<div id="my_example_id" class="ShinyClass">
   My important text
   <span> Here</span>
</div>
Run Code Online (Sandbox Code Playgroud)

I would like to write a javascript fucntion that when provided with the element of the div above will return the following as string:

<div id="my_example_id" class="ShinyClass">
Run Code Online (Sandbox Code Playgroud)

I have been trying with different manipulations over the elements, functions like innerHTML, outerHTML and similar, but I was …

html javascript

4
推荐指数
2
解决办法
2187
查看次数