小编did*_*_X8的帖子

TextView setTextColor()不起作用

我以编程方式创建这样的元素的列表(没有ListView,只是将它们添加到父级):

    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:orientation="vertical" android:layout_weight="1">
    <TextView android:id="@+id/filiale_name"
    android:layout_width="fill_parent" android:layout_height="wrap_content"/>
    <TextView android:id="@+id/lagerstand_text"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:textSize="10sp" android:textColor="@color/red"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

另外,我在values/colors.xml中定义了一些颜色.如您所见,ID为"lagerstand_text"的TextView默认将其颜色设置为红色.这样可行.

用Java创建元素时,我做到了

lagerstandText.setText("bla");
Run Code Online (Sandbox Code Playgroud)

对于某些元素,我也这样做

lagerstandText.setTextColor(R.color.red);
Run Code Online (Sandbox Code Playgroud)

和其他颜色.虽然我没有调用setTextColor()的元素是红色的,但是所有其他元素都是灰色的,无论我选择哪种颜色(即使它再次是相同的红色).

这是为什么?

android colors textview

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

如何使用自定义主题更改默认文本颜色?

我正在尝试使用主题应该很容易,但我无法找到如何:我希望我的应用程序默认所有文本都是白色的.我在theme.xml中创建了一个自定义主题:

<style name="Theme" parent="@android:Theme">
</style>

<style name="TextAppearance.Theme" parent="@android:TextAppearance.Theme">
    <item name="android:textColor">#ffffffff</item>
</style>
Run Code Online (Sandbox Code Playgroud)

并为整个应用程序设置它:

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/Theme">
Run Code Online (Sandbox Code Playgroud)

但标签仍然是黑色的.少了什么东西?

PS:如何为每个小部件应用不同的文本大小另外定义样式?是这样的吗?

<style name="Theme.smallText">
    <item name="android:textSize">12dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

更新

我看了Android SDK 中的themes.xml,它展示了如何设置主题的文本样式:

<item name="textAppearance">@android:style/TextAppearance</item>
Run Code Online (Sandbox Code Playgroud)

在我的情况下,它应该使用这个定义:

<style name="Theme" parent="@android:Theme">
    <item name="android:textAppearance">@style/MyText</item>
</style>

<style name="MyText" parent="@android:style/TextAppearance">
    <item name="android:textColor">#ffffffff</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但是,仍然没有工作.

刚刚找到针对同一问题的其他帖子:http://groups.google.com/group/android-developers/browse_thread/thread/2897ccd0884546b9

android colors android-theme

56
推荐指数
3
解决办法
12万
查看次数

从超类实例创建实例

考虑以下情况:

class A {
  int x;
  int y;
}

class B extends A {
  int z;
}
Run Code Online (Sandbox Code Playgroud)

现在,代码中的某个地方使用这样的类:

A objA = getAFromSomewhere();
B objB = null;
Run Code Online (Sandbox Code Playgroud)

在某种情况下,我想做类似的事情

objB = objA; // can't do this
objB.z = someZ;
Run Code Online (Sandbox Code Playgroud)

当然,真实的对象有点复杂,所以它不仅仅是复制两个整数.但它们也不过分复杂.

我知道我可以像这样写一个B的构造函数:

public B(A anA) {
  this.a = anA.a;
  this.b = anA.b;

  this.z = 0;
}
Run Code Online (Sandbox Code Playgroud)

但如果这是唯一的方法,我更喜欢将B的其他成员合并到A.

更新考虑答案

我的问题不够明确.我明白objB = objA; 不能工作(因此我要求"类似的东西",意思是代码复杂程度相似的东西),我知道浅拷贝和深拷贝的问题.
我正在寻找的是复制基类成员的可能性(假设使用clone()).您可能会理解,手动复制每个成员是一个糟糕的解决方案,因为它会增加代码的复杂性和冗余.无论如何,谢谢你的回复!

java

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

Python:内存中字符串的大小

请考虑以下代码:

arr = []
for (str, id, flag) in some_data:
    arr.append((str, id, flag))
Run Code Online (Sandbox Code Playgroud)

想象一下,输入字符串的平均长度为2个字符,最大值为5个字符,而some_data则为100万个元素.这种结构的内存要求是什么?

可能是因为字符串浪费了很多内存?如果是这样,我该如何避免呢?

python arrays memory-management

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

PHP"未找到例外"

我有一个有趣的问题.在试图理解为什么某个网站将http代码500返回给浏览器时,我找到了该消息

PHP Fatal error:  Class 'MZ\\MailChimpBundle\\Services\\Exception' not found in /var/www/website/vendor/bundles/MZ/MailChimpBundle/Services/MailChimp.php on line 41
Run Code Online (Sandbox Code Playgroud)

在apache日志中.看看上面提到的那一行:

throw new Exception('This bundle needs the cURL PHP extension.');
Run Code Online (Sandbox Code Playgroud)

我现在明白了如何使网站正常工作,但我仍然想知道为什么抛出异常的代码(这会导致更有用的日志消息)失败.可能是什么原因?

php exception

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

如何替换mkv文件中的音轨(在Ubuntu 11.10上)

我有

  • 带有webm视频和ogg音频的mkv文件
  • ogg音频文件

我想用ogg文件中的音频替换mkv文件中的音频.如何使用默认存储库提供的程序在Ubuntu 11.10上执行此操作?

生成的文件也可能有其他格式(例如avi),但我更喜欢mkv.顺便说一句.没有ffmpeg有一个mkv muxer?我使用param -f mkv测试导致错误请求的输出格式'mkv'不是合适的输出格式

ubuntu ffmpeg ogg mkv webm

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

通过Intent分享图片(Facebook和co)

我浪费了很多时间,试图通过共享Intent来共享一个简单的jpeg图像.

像往常一样最重要的是Facebook,和往常一样,它不起作用.

Intent shareIntent = new Intent(Intent.ACTION_SEND);
Uri picUri = Uri.parse("http://someserver.com/somepic.jpg");
shareIntent.setType("image/jpeg");
shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
shareIntent.putExtra(Intent.EXTRA_TEXT, someString);
startActivity(Intent.createChooser(shareIntent, "some text..."));
Run Code Online (Sandbox Code Playgroud)

选择器打开很好,Facebook也打开并让我登录,但它告诉我updoad失败了.我也尝试了Flicker和Mail,它们都失败了.然后我尝试将图像写入本地文件并从那里发送,也失败了:

    Drawable dr = ImageLoader.getDrawable(url);
    Bitmap bmp = ((BitmapDrawable)dr).getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 80, stream);
    byte[] data = stream.toByteArray();

    FileOutputStream ostream;
    try {
        ostream = this.openFileOutput("pic.jpeg", Context.MODE_WORLD_READABLE);
        ostream.write(data);
    } catch (Exception e) {
        e.printStackTrace();
    }

    Uri picUri = Uri.fromFile(new File("pic.jpeg"));
    shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
Run Code Online (Sandbox Code Playgroud)

我不知道我是否正确地做到了,之前没有这样做过.

我的最后一次尝试是发送一个HTML字符串,其中包含img标记的图像.但Facebook似乎不会处理类型"text/html",所以它不是一个选项.我确信它只需要几行代码.但是哪些?

编辑

我忘记了这条线

shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
Run Code Online (Sandbox Code Playgroud)

在第一个代码段中.当我尝试时它就在那里,也没有工作.没睡多久......

android facebook android-intent

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

蜂窝模拟器反转屏幕的肖像

我刚刚在3.2模拟器上测试了为Android 2开发的应用程序.该应用程序仅支持纵向模式,因此在模拟器的默认横向模式下,它旋转了90°(与在Android 2上一样).
但是,如果我将模拟器旋转到纵向模式,则屏幕反转180°.这意味着,最重要的是在屏幕的底部,反之亦然.它不仅是应用程序,还有Android状态栏.
如果我退出(背景)应用程序,问题就会消失.
我已经在几个手机和模拟器上测试了这个应用程序,这在Android 2中从未发生过.无法在真正的Honeycomb设备上进行测试.

android screen-orientation android-3.0-honeycomb

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

Xcode bot:git子模块未初始化

我正在尝试使用OSX服务器设置Xcode bot.配置git存储库并创建机器人后,我运行集成.它失败,因为存储库仅部分检出.更确切地说:在配置的6个子模块中,只有3个被初始化和检出.

didi@mac:/Library/Server/Xcode/Data/BotRuns/Cache/c5fda8f4-4d25-4d25-c18a-eb0b16a06692/source$ git submodule status
+c6e8420aec4147641fb1ca12d9f1d31bdd804e77 libs/asi-http-request (v1.7-320-gc6e8420)
-ae64a38766b42f236bb94f0e661cddb829f9ac43 libs/kraken
-7da02b323636bbaa0bbbf5b4eb229fcc07b1e14a libs/route-me
 152f9ee5576e710705a49032253d7d5af5366f9c libs/routing (152f9ee)
 347aaf74fe0c6388785095efdbf6397851514b7f libs/rtlabel (1.0-32-g347aaf7)
-562cf6b1c879f03546f5184e012cea15c4f159db libs/skmaps
Run Code Online (Sandbox Code Playgroud)

( - 表示未初始化)

查看机器人日志,它似乎只是忽略子模块初始化部分中丢失的子模块:

...
Checking connectivity... done
Submodule 'libs/asi-http-request' (https://github.com/BikeCityGuide/asi-http-request.git) registered for path 'libs/asi-http-request'
Submodule 'libs/routing' (ssh://mac_ci@rooty.bikecityguide.org/var/repos/librouting.git) registered for path 'libs/routing'
Submodule 'libs/rtlabel' (https://github.com/BikeCityGuide/RTLabel.git) registered for path 'libs/rtlabel'
Cloning into 'libs/asi-http-request'...
...
Run Code Online (Sandbox Code Playgroud)

这里或其他地方没有错误消息.在日志中的任何地方都没有提到例如"kraken"(缺少子模块的名称).

手动签出时(clone,submodule init,submodule update),所有子模块都被初始化.

.gitmodules看起来像这样:

$ cat .gitmodules 
[submodule "libs/asi-http-request"]
    path = libs/asi-http-request
    url = https://github.com/BikeCityGuide/asi-http-request.git
[submodule "libs/rtlabel"]
    path = libs/rtlabel
    url = https://github.com/BikeCityGuide/RTLabel.git
[submodule "libs/routing"] …
Run Code Online (Sandbox Code Playgroud)

git xcode git-submodules osx-server xcode-bots

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

为外部显示添加udev规则

我写了一个小的shell脚本,用xrandr配置连接的外部显示器.

# cat /home/didi/bin/monitor_autoswitcher.sh 
#!/bin/bash

xrandr | grep "HDMI1 connected"
if [[ $? == 0 ]]; then
  # is connected
  xrandr --output HDMI1 --right-of LVDS1 --auto
else
  # not connected
  xrandr --output HDMI1 --auto
fi

xrandr | grep "VGA1 connected"
if [[ $? == 0 ]]; then
  # is connected
  xrandr --output VGA1 --right-of LVDS1 --auto
else
  # not connected
  xrandr --output VGA1 --auto
fi
Run Code Online (Sandbox Code Playgroud)

这样可行.现在我想让它自动触发,并发现这可以用udev完成.我试过了

udevadm monitor
Run Code Online (Sandbox Code Playgroud)

当插入外部显示输出时

KERNEL[465828.240250] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
UDEV  [465828.243549] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
Run Code Online (Sandbox Code Playgroud)

插上电源时

KERNEL[465836.844209] …
Run Code Online (Sandbox Code Playgroud)

linux xrandr udev

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