小编Roc*_*uy3的帖子

如何以编程方式更改colors.xml中颜色的值?

我正在开发一个应用程序,它将以不同的颜色和图像为主题,为不同的客户.虽然我可以选择在构建时使用自定义颜色重写colors.xml文件,但我倾向于在运行时设置颜色.我想知道的是,如果这是以某种方式以编程方式更改colors.xml文件中定义的颜色的值,并使该新值在布局定义中使用它的所有位置生效.

换句话说,如果我有:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <color headerColor="white">#FFF</color>
    <color backgroundColor="black">#000</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

和一个布局文件,如:

<TextView
        android:id="@+id/listItemHeaderActivity"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="12sp"
        android:textColor="@color/headerColor"
        android:background="@color/backgroundColor"
        android:text="@string/listTextHeaderActivity"/>
Run Code Online (Sandbox Code Playgroud)

我可以在Java中更改和的值,headercolorbackgroundColor在所有使用这些值的视图中进行更改吗?或者,每当我显示这些视图时,我是否必须单独更改每个相关的视图颜色?

提前致谢.

android colors android-layout

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

如何检查 Rails 中与 where 语句的空关联?

我有一个名为 Category 的模型,它可以有许多子类别(也是类别记录)。我想收集数据库中没有子类别的所有类别,例如:

Category.where(subcategories: [])
Run Code Online (Sandbox Code Playgroud)

但我尝试过的每一个直观的变体都会抛出错误或返回空集。它生成了一些我不太理解的 SQL:

Category Load (0.5ms) SELECT "categories".* FROM "categories" WHERE 1=0
=> #<ActiveRecord::Relation []> 
Run Code Online (Sandbox Code Playgroud)

谁能告诉我正确的方法来做到这一点?

编辑:这是定义子类别关系的方式

class Category < ActiveRecord::Base
    has_many :subcategories, class_name: 'Category', foreign_key: 'parent_id'
    belongs_to :parent, class_name: 'Category'
end
Run Code Online (Sandbox Code Playgroud)

sql ruby-on-rails where-clause

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

在浏览器(javascript)中使用AWS的Cognito凭据时,请不断收到"缺少凭据"错误

我正在尝试使用AWS的JavaScript SDK从Web浏览器上传文件到我的S3存储桶.我的代码看起来像这样:

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    AccountId: 'dfhgdh',
    IdentityPoolId: 'fdagsd',
    RoleArn: 'fdafds'
});

var bucket = new AWS.S3({params: {Bucket: 'test-bucket'}});
var pdfUpload = document.getElementById('pdf-uploads').files[0];

var params = {Key: pdfUpload.name, ContentType: pdfUpload.type, Body: pdfUpload};
bucket.putObject(params, function (error, data) {
    if (error) {
        console.log(error);
    } else {
        console.log(data);
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,每当它到达putObject命令时,我都会从AWS收到错误:

"错误:配置中缺少凭据{message:"配置中缺少凭据",代码:"CredentialsError"......"

我敢肯定我在这里错过了一些简单而愚蠢的东西,但我无法弄清楚我的生活是什么.(当我尝试对伪秘密密钥进行硬编码时,我得到了一个不同的错误,所以我很确定它与我尝试设置认证凭证的方式有关.)

javascript amazon-s3 amazon-web-services amazon-cognito aws-sdk

5
推荐指数
2
解决办法
4020
查看次数

Rspec 控制器测试未命中我的控制器操作

import向控制器添加了一个方法,当我从我的网站手动测试它时它工作得很好,但它在 rspec 中失败。这是我的测试的样子:

require 'spec_helper'

describe PropertiesController do
  let!(:user) { FactoryGirl.create(:user) }

  before :each do
    sign_in user
  end

  describe "should upload user properties" do
    before do
      post :import, spreadsheet: fixture_file_upload("/files/property_upload_template.xlsx")
    end

    it "should have created records" do
      expect(Property.count).to eq 3
      # Some other assertions
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

当我在导入操作中添加puts语句(包括第一行)时,显然没有调用它们。除了断言失败之外,测试不会生成任何错误。同样,当我查看 test.log 文件时,所发生的只是创建我的测试用户(并且发送了一封设计确认电子邮件),但似乎并没有执行导入操作。测试服务器似乎可以很好地识别该路由,但它实际上并未执行该操作。

我的测试配置有问题吗?

ruby rspec ruby-on-rails

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