小编JJD*_*JJD的帖子

如何在以编程方式添加到LinearLayout的按钮之间添加边距空间?

我在运行时将按钮添加到LinearLayout(垂直方向)......

private void addButtons(String[] titles) {
    for (String title : titles) {
        Button button = ButtonBuilder.getButton(getActivity());
        button.setText(title);
        mButtonsLayout.addView(button);
    }
}
Run Code Online (Sandbox Code Playgroud)

每个按钮都有一个用XML定义的样式.

<!-- styles.xml -->
<style name="Button">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:gravity">center</item>
    <item name="android:layout_margin">8dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

虽然我定义了layout_margin所有按钮彼此相邻但没有任何间距.如何在它们之间添加边距?


正如nmw所建议的那样,我试图将父布局引入inflater.

private void addButtons(String[] titles) {
    for (String title : titles) {
        Button button = ButtonBuilder.getButton(getActivity(), mButtonsLayout);
        button.setText(title);
        mButtonsLayout.addView(button);
    }
}
Run Code Online (Sandbox Code Playgroud)

..

// ButtonBuilder.java
public static Button getButton(Activity activity, ViewGroup parent) {
    return (Button)activity.getLayoutInflater().inflate(R.layout.custom_button, …
Run Code Online (Sandbox Code Playgroud)

android runtime margin android-layout android-linearlayout

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

gradle:如何共享一个build.gradle,其中包含我唯一拥有的信息?

我的build.gradle文件包含这样的部分,用于将存档上传到SonaType:

uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment {
                MavenDeployment deployment -> signing.signPom(deployment);
            }

            // HERE
            repository(url: sonatypeRepoURI) { 
                authentication(userName: sonatypeUsername,
                    password: sonatypePassword);
            }

            pom.project {
                // etc etc
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在标记的点上HERE,其他希望使用我的构建文件的用户将失败,因为至少没有定义第一个变量:

FAILURE: Build failed with an exception.

* Where:
Build file '/path/to/build.gradle' line: 144

* What went wrong:
A problem occurred evaluating root project 'whateverTheProject'.
> No such property: sonatypeRepoURI for class: 
  org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer
Run Code Online (Sandbox Code Playgroud)

如何修改上面的部分,以便用户不受这些未定义的变量的影响?

sonatype gradle build.gradle

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

如何根据类属性生成唯一的对象哈希?

我有一个具有不同属性的模型。并非每个实例的每个属性都有一个值。

class Location

  attr_accessible :name,     # string, default => :null
                  :size,     # integer, default => 0
                  :latitude, # float, default => 0
                  :longitude # float, default => 0

  # Returns a unique hash for the instance.
  def hash
   # ...
  end

end
Run Code Online (Sandbox Code Playgroud)

如何实现为实例返回唯一 ID 的哈希函数?每次调用对象上的哈希函数时,它应该是相同的。我不想要一个随机的唯一 ID。应该可以在不修改的情况下将哈希存储在 sqlite3 数据库中。


正如您在MetaSkills回答中所读到那样,覆盖hash方法并不是一个好主意,因为它“被大量 ruby​​ 对象用于比较和相等”。因此,我将其重命名为custom_attributes_hash.

ruby sqlite hash uniqueidentifier

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

如何嵌套收集路线?

我在Rails 3应用程序中使用以下路由配置.

# config/routes.rb
MyApp::Application.routes.draw do

  resources :products do
    get 'statistics', on: :collection, controller: "statistics", action: "index"
  end

end
Run Code Online (Sandbox Code Playgroud)

StatisticController有两个简单的方法:

# app/controllers/statistics_controller.rb
class StatisticsController < ApplicationController

  def index
    @statistics = Statistic.chronologic
    render json: @statistics
  end

  def latest
    @statistic = Statistic.latest
    render json: @statistic
  end

end
Run Code Online (Sandbox Code Playgroud)

这将生成由/products/statistics成功处理的URL StatisticsController.

如何定义导致以下URL的路由:/products/statistics/latest


可选:我尝试将工作定义置于关注点但它失败并显示错误消息:

undefined method 'concern' for #<ActionDispatch::Routing::Mapper ...

collections ruby-on-rails separation-of-concerns nested-resources nested-routes

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

UnknownFormatConversionException:Android strings.xml format <![CDATA [...%1 $ ...]]>

我正在尝试在strings.xml中使用格式化的html .所以在strings.xml中我有以下内容:

<string name="application_start_message" formatted="false">
    <![CDATA[ bla bla bla %1$ bla bla bla %1$.... ]]>
<string name="application_website_url">website.com</string>
Run Code Online (Sandbox Code Playgroud)

后来我在代码中做了:

String string = getString(
    R.string.application_start_message,
    getString(R.string.application_website_url)
);
Run Code Online (Sandbox Code Playgroud)

我得到的运行时异常是:

java.lang.RuntimeException: Unable to start activity 
    ComponentInfo{com.artigile.checkmyphone/
    com.artigile.checkmyphone.MainActivity}: 
    java.util.UnknownFormatConversionException: Conversion: <
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

Caused by: java.util.UnknownFormatConversionException: Conversion: <
at java.util.Formatter$FormatToken.unknownFormatConversionException(Formatter.java:1399)
at java.util.Formatter$FormatToken.checkFlags(Formatter.java:1336)
at java.util.Formatter.transform(Formatter.java:1442)
at java.util.Formatter.doFormat(Formatter.java:1081)
at …
Run Code Online (Sandbox Code Playgroud)

formatting android cdata android-xml

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

如何配置 ProGuard 以尊重 Jackson 模型?

以下课程描述了我使用Jackson 2.2从 .json 文件中读取的模型。

public class Product {
    public String name;
    public int width;
}
Run Code Online (Sandbox Code Playgroud)

摇篮构建流程调用ProGuard的收缩和混淆发布版本。当我启动应用程序时出现以下错误消息:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: 
  Unrecognized field "name" (class com.example.b.c), 
  not marked as ignorable (0 known properties: ])
Run Code Online (Sandbox Code Playgroud)

如何配置 ProGuard 或对Product类进行注释以使 Jackson 仍然有效?

java android proguard gradle jackson

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

如何使用RippleDrawable以编程方式设置按钮背景(API 21)

我继承了Button.从该类中我尝试以编程方式更改颜色.

RippleDrawable draw = (RippleDrawable) getContext().getApplicationContext()
    .getResources().getDrawable(R.drawable.raised_btn);
this.setBackground(draw);
Run Code Online (Sandbox Code Playgroud)

到目前为止看起来很棒

默认状态

但是我按下按钮,它是最随机的颜色.我没有指定这些粉红色的颜色.如果我通过XML(android:background="@drawable/raised_btn")将这个drawable设置为背景,那么我没有问题.我需要以编程方式设置它.

压制状态


我的RippleDrawable-raised_btn.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?attr/colorControlHighlight">
    <inset xmlns:android="http://schemas.android.com/apk/res/android"
        android:insetLeft="@dimen/button_inset_horizontal_material"
        android:insetTop="@dimen/button_inset_vertical_material"
        android:insetRight="@dimen/button_inset_horizontal_material"
        android:insetBottom="@dimen/button_inset_vertical_material">
        <shape android:shape="rectangle">
            <corners android:radius="@dimen/control_corner_material" />
            <solid android:color="@color/tan"/>
            <padding android:left="@dimen/button_padding_horizontal_material"
                android:top="@dimen/button_padding_vertical_material"
                android:right="@dimen/button_padding_horizontal_material"
                android:bottom="@dimen/button_padding_vertical_material" />
        </shape>
    </inset>
</ripple>
Run Code Online (Sandbox Code Playgroud)

如何以RippleDrawable编程方式设置背景时如何实现正确的连锁效果?

android android-layout android-drawable android-5.0-lollipop

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

SonarQube不承认一些Lombok注释 - Jacoco的误导性测试覆盖结果

SonarQube支持部分Lombok注释(getter - setters等).但是,它仍然不支持@EqualsAndHashCode@ToString方法.

我已经在StackOverflow和其他网站上尝试了所有答案.但是,它在我的情况下不起作用.

有没有办法说SonarQube或Jacoco,不分析这个注释或不包括它们在测试覆盖率结果或什么是你的解决方案?

java eclipse lombok sonarqube

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

如何使用bash脚本输出提交次数?

我试图输出master和之间的Git提交数量HEAD.以下脚本生成提交哈希列表并尝试对其进行计数.

#!/bin/bash

git_list_commits_hashes_cmd="git rev-list --reverse master..HEAD"
commits=$($git_list_commits_hashes_cmd)
commits_count=${#commits[@]}
echo "==> ${commits_count}"
Run Code Online (Sandbox Code Playgroud)

但是,该值始终1与实际提交数无关.为什么?

有关

git bash shell

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

_event.cpython-310-x86_64-linux-gnu.so 的导入错误:未定义的符号:_PyGen_Send

当尝试使用 时kivy-module,我收到以下提示:

[INFO   ] [Logger      ] Record log in /home/paul/.kivy/logs/kivy_22-01-06_83.txt
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] Installed at "/home/paul/PycharmProjects/finance_app/venv/lib/python3.10/site-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.10.1 (main, Dec 18 2021, 23:53:45) [GCC 11.1.0]
[INFO   ] [Python      ] Interpreter at "/home/paul/PycharmProjects/finance_app/venv/bin/python"
 Traceback (most recent call last):
   File "/home/paul/PycharmProjects/finance_app/frontend/graphical_user_interface.py", line 2, in <module>
     from kivy.app import App
   File "/home/paul/PycharmProjects/finance_app/venv/lib/python3.10/site-packages/kivy/app.py", line 411, in <module>
     from kivy.base import runTouchApp, async_runTouchApp, stopTouchApp
   File "/home/paul/PycharmProjects/finance_app/venv/lib/python3.10/site-packages/kivy/base.py", line 29, in <module>
     from kivy.event import EventDispatcher …
Run Code Online (Sandbox Code Playgroud)

python python-3.x kivy

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