小编Mat*_*att的帖子

设置包含布局的子元素的属性

我有一个main.xml文件描述了我的主要活动的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <include layout="@layout/mylayout" />
    <include layout="@layout/mylayout" />
    <include layout="@layout/mylayout" />
    <include layout="@layout/mylayout" />
    <include layout="@layout/mylayout" />
    <include layout="@layout/mylayout" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

及其包含的布局xml文件(mylayout.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mylayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello world" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我只想在我的主布局中包含5次"mylayout",但是我没有看到"hello world"5次,而是希望TextView包含自定义文本.

有没有办法通过在include元素上设置一些属性来覆盖子TextView的文本?实现这一目标的最佳方法是什么?

android android-widget android-layout

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

为什么你想要在堆而不是堆栈上分配内存?

可能重复:
何时最好使用堆栈而不是堆,反之亦然?

我已经阅读了关于堆与堆栈的其他一些问题,但它们似乎更关注堆/堆栈的作用而不是使用它们的原因.

在我看来,堆栈分配几乎总是首选,因为它更快(只需移动堆栈指针与在堆中查找可用空间),并且您在使用它时不必手动释放已分配的内存.我可以看到使用堆分配的唯一原因是,如果要在函数中创建对象,然后在函数作用域之外使用它,因为堆栈分配的内存在从函数返回后自动取消分配.

还有其他原因使用堆分配而不是我不知道的堆栈分配吗?

c memory heap stack memory-management

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

Eclipse中的"Build Target SDK"和AndroidManifest.xml中的android:targetSdkVersion之间的区别?

当我将现有的Android项目导入Eclipse时,我被要求选择SDK构建目标作为该过程的一部分.

为什么我需要输入这些信息?这与android:targetSdkVersion/android:minSdkVersion指定的值AndroidManifest.xml有何不同?

例如,在Google IO示例应用程序中,其AndroidManifest说android:targetSdkVersion=11,但README表示Eclipse项目需要针对API级别13或更高级别,否则将发生编译错误.

android

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

是否有命令行方式来获取有关gradle任务的信息?

是否有某种命令gradlew help <task>可以提供有关特定任务中究竟发生了什么的文档?

gradle

17
推荐指数
2
解决办法
5624
查看次数

我是否可以设置BuildConfig标志,该标志返回是否使用`connectedAndroidTest` gradle任务构建apk?

如果我们正在运行Android单元测试,我的应用程序的一部分我不想运行,因此我想用类似的东西包围它们

if (!BuildConfig.TESTING) {
  // Code here that I don't want to run during tests.
}
Run Code Online (Sandbox Code Playgroud)

是否可以BuildConfig根据是否使用connectedAndroidTestgradle任务来填充此标志?这是解决这个问题的理智方式吗?

android buildconfig gradle android-testing

17
推荐指数
1
解决办法
1385
查看次数

什么是原始包AndroidManifest属性用于?

我用apktool在Jelly Bean上提取默认浏览器的清单,这行出现在清单中 -

  <manifest ... package="com.google.android.browser">
    <original-package android:name="com.android.browser" />
    ...
  </manifest>
Run Code Online (Sandbox Code Playgroud)

知道这是用来做什么的吗?该

android android-manifest

16
推荐指数
1
解决办法
5209
查看次数

Mockito Spy'ing对被单元测试的对象

间谍对正在进行单元测试的物体是否有代码味?例如,假设我有一个LineCounter类,其作用是简单地计算字符串中的行数.-

class LineCounter {
    public int getNumLines(String string) {
        String metadata = getStringMetadata(string);

        // count lines in file
        return numLines;
    }

    /** Expensive operation */
    protected String getStringMetadata(String string) {
        // do stuff with string
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想为此编写一个JUnit 4测试来测试该getNumLines方法,同时模拟昂贵的getStringMetadata调用.我决定使用Mockito的间谍机制来getStringMetadata返回虚拟值.

class LineCounterTests {
    @Test public void testGetNumLines() {
        LineCounter lineCounterSpy = Mockito.spy(new LineCounter());

        // Mock out expensive call to return dummy value.            
        Mockito.when(lineCounterSpy.getStringMetadata(Mockito.anyString()).thenReturn("foo");

        assertEquals(2, lineCounterSpy.getNumLines("hello\nworld");
    }
}
Run Code Online (Sandbox Code Playgroud)

这是合理的事吗?我觉得测试一个Spy对象而不是实际的类很奇怪,但是我无法想到反对它的原因.

java junit unit-testing mockito

13
推荐指数
1
解决办法
5917
查看次数

使用gradle产品风格删除AndroidManifest元素

我正在设置一个带有一些产品风格的Android gradle项目.<uses-permission android:name="android.permission.INTERNET" />除了我的一种口味外,我想获得许可.我知道有可能有一个特定的味道添加权限,但是有可能有一个味道删除一个?

我能想到的另一个解决方案就是<uses-permission android:name="android.permission.INTERNET" />为我的所有口味添加权限,除了那个,这看起来很痛苦.

android gradle

11
推荐指数
2
解决办法
6068
查看次数

在表中获取offsetTop元素

我似乎无法弄清楚如何获取表中元素的offsetTop.它适用于表外的元素,但表中的所有元素都返回相同的结果,它通常位于页面的顶部.我在Firefox和Chrome中试过这个.如何获取表中元素的offsetTop?

html javascript offset

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

Android库JAR可以依赖Android库AAR吗?

我有一个Android库项目FooLib.FooLib引用像Android这样Context的东西,但不需要任何资源文件(事情res/),所以我目前将其打包为JAR供我的应用程序使用.

我现在想要FooLib依赖BarLib,但BarLib 确实使用资源,所以我不能打包BarLib成JAR.相反,它被打包为AAR.我有可能FooLib依赖BarLib但继续打包FooLib成JAR吗?或者,有一个AAR依赖关系FooLib强制我使它也成为AAR吗?

android jar gradle android-gradle-plugin aar

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