小编Sam*_*ert的帖子

为什么Room实体不适用于Android中的不可变属性

我一直在探索Room数据库对象映射库,我想到了一些奇怪的东西.

正如这个答案所暗示的那样,实体数据模型不能具有不可变属性.

但我查看了google与kotlin的持久示例,也Room适用于不可变属性.请从示例中检查数据类.

这种行为可能是什么原因?

如果我们可以创建不可变值(val属性),这可能是一个很好的功能,因为这会限制程序员在创建对象后更改唯一标识符(如id).

sqlite android immutability kotlin android-room

14
推荐指数
1
解决办法
2105
查看次数

如何在 DataBinding Android 中的 BindingAdapter 方法中提供默认值

我正在研究一种绑定适配器方法来在TextView.

@BindingAdapter("foregroundColorSpan", "start", "end", requireAll = false)
fun TextView.setForegroundColorSpan(color: Int, start: Int = 0, end: Int = text.length - 1) {
    val spanBuilder = SpannableStringBuilder(text)
    spanBuilder.setSpan(ForegroundColorSpan(color), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
    text = spanBuilder
}
Run Code Online (Sandbox Code Playgroud)

这是我如何使用它

<TextView
        android:id="@+id/loginLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="@dimen/narrow"
        android:text="@string/already_have_account_login"
        android:textColor="@color/grey_aee4e4e4"
        android:textSize="@dimen/text_size_small"
        app:foregroundColorSpan="@{@color/blue_ae12235b}"
        app:start="@{25}" />
Run Code Online (Sandbox Code Playgroud)

我似乎无法获得end指定为文本的最后一个索引的as 参数默认值TextView

是否有任何解决方法可以用来从参数中获取默认值,而无需检查该值是否为 0?

android android-layout kotlin android-databinding android-binding-adapter

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

在 TextView 上膨胀 xml 布局 ArrayIndexOutOfBoundsException 时出错

我遇到了一个奇怪的崩溃问题。我似乎无法弄清楚问题所在。

这是崩溃报告。

                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bigappcompany.grocery/com.bigappcompany.grocery.activity.OrderDetailsActivity}: android.view.InflateException: Binary XML file line #125: Binary XML file line #125: Error inflating class <unknown>
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2560)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2626)
                  at android.app.ActivityThread.-wrap11(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1475)
                  at android.os.Handler.dispatchMessage(Handler.java:111)
                  at android.os.Looper.loop(Looper.java:207)
                  at android.app.ActivityThread.main(ActivityThread.java:5740)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:766)
               Caused by: android.view.InflateException: Binary XML file line #125: Binary XML file line #125: Error inflating class <unknown>
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)
                  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                  at com.bigappcompany.grocery.activity.OrderDetailsActivity.onCreate(OrderDetailsActivity.java:11)
                  at android.app.Activity.performCreate(Activity.java:6543)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2513)
                  at …
Run Code Online (Sandbox Code Playgroud)

xml android textview android-layout indexoutofboundsexception

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

如何使深层链接字符串在android TextView中可点击

如何在 android TextView 中制作深层链接字符串,例如“myapp://product/123”可点击。我知道有电子邮件、网络和电话等自动链接选项,但没有任何深层链接选项。如何使其可点击并在点击该链接时启动意图?

android textview deep-linking

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

如何限制推送操作以仅允许在 github 中使用 GPG 签名的提交

我有一个 Github 存储库,我们共享用于我们的开发。为了确保完整性,我们决定用 GPG 签署我们的提交和标签。

现在,我如何防止开发人员将未签名的提交推送到我们在 Github 中的存储库,并将 GPG 公钥列入白名单以允许推送使用白名单公钥签名的提交

我检查了一些预推挂钩,但没有按照我上面描述的方式解决问题,这里是。

remote="$1"
url="$2"

z40=0000000000000000000000000000000000000000

IFS=' '
while read local_ref local_sha remote_ref remote_sha
do
    if [ "$local_sha" = $z40 ]
    then
    # Handle delete
    else
    if [ "$remote_sha" = $z40 ]
    then
        # New branch, examine all commits
        range="$local_sha"
    else
        # Update to existing branch, examine new commits
        range="$remote_sha..$local_sha"
    fi

    # Check for WIP commit
    commit=`git rev-list -n 1 --grep '^WIP' "$range"`
    if [ -n "$commit" ]
    then
        echo "Found WIP …
Run Code Online (Sandbox Code Playgroud)

git github git-push githooks

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

如何在Android中为AppCompatButton的文本颜色创建水平渐变

我想为我的生成水平文本颜色渐变AppCompatButton。我能够通过完成垂直文本颜色渐变

val signInBtn = view.findViewById<AppCompatButton>(R.id.btn_sign_in)
val textShader = LinearGradient(0f, 0f, 0f, signInBtn.textSize,
            ContextCompat.getColor(context, R.color.gradient_start),
            ContextCompat.getColor(context, R.color.gradient_end), TileMode.CLAMP)
signInBtn.paint.shader = textShader
Run Code Online (Sandbox Code Playgroud)

我曾尝试更改x2值,但似乎无济于事。任何帮助,将不胜感激。

这是我的按钮xml布局

<android.support.v7.widget.AppCompatButton
    android:id="@+id/btn_sign_in"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="@dimen/big"
    android:layout_marginStart="@dimen/big"
    android:layout_marginTop="@dimen/big"
    android:background="@color/white"
    android:text="@string/sign_in"
    android:textAllCaps="false"
    android:fadingEdge="horizontal"
    android:scrollHorizontally="true"
    android:textColor="@color/white"/>
Run Code Online (Sandbox Code Playgroud)

shader android button linear-gradients

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

Android中的房间根据主键自动排序

我有一个这样的数据类

@Entity
data class Question(

        @field:SerializedName("question")
        var question: String? = null,

        @field:SerializedName("answers")
        var answers: ArrayList<String?>? = null,

        @field:SerializedName("id")
        @PrimaryKey
        var id: Int? = null
)
Run Code Online (Sandbox Code Playgroud)

然后在 DAO 中,我有这样的保存和获取方法

    @Dao
interface QnADao {

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun saveQuestion(questions:Question)

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun saveAllQuestions(questions: List<Question?>?)


    @Query("SELECT * from Question")
    fun getAllQnA():List<Question>


}
Run Code Online (Sandbox Code Playgroud)

我正在保存一个列表,Questions然后在检索它们。因此,每当我检索它们时,我都会根据id主键对列表进行排序。

所以,如果我节省了疑问id:254id:23id:45id:92然后我得到它像这样id:23id:45id:92id:254

但是我不需要这样的排序列表,我需要获取保存在数据库中的数据。任何帮助,将不胜感激。谢谢。

sqlite android kotlin android-room

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

未知协议:wss:在Android的Socket.IO中

为什么是

Socket mSocket = IO.socket("wss://engine_url:443/path_to_script);
Run Code Online (Sandbox Code Playgroud)

返回URISyntaxException:未知协议:wss:异常

知道为什么吗?任何帮助,将不胜感激

android socket.io

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

如何在 Android Studio 中突出显示 Room Dao 的 SQL 语法

使用新Room,如何在Dao接口中突出显示 SQL 语法?

例如@Query(SELECT * FROM user),是否可以使用与单词SELECT, FROM不同的颜色和文本格式突出显示单词user

sql android syntax-highlighting android-studio-3.0 android-room

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

如何在Android Studio中清理未使用的资源文件

我刚刚完成了我的Android应用程序.我想清理未使用的布局文件和其他资源文件,如图像和drawables以及实际代码中未引用的字符串.我怎么做?有没有在Android Studio中执行此操作的选项?

resource-cleanup android-studio

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

如何在Kotlin中创建化类型的对象

我正在尝试创建扩展功能以为回收站视图适配器创建视图持有者对象

inline fun <reified T: RecyclerView.ViewHolder> ViewGroup.createViewHolder(@LayoutRes res: Int): T {
    val inflater = LayoutInflater.from(context)
    val itemView = inflater.inflate(res, this, false)
    // return ViewHolder Object
}
Run Code Online (Sandbox Code Playgroud)

如何创建扩展RecyclerView.ViewHolder的T类型的对象,以便可以从函数返回。

android kotlin recycler-adapter kotlin-extension kotlin-reified-type-parameters

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

如何创建阴影效果就像下面显示的android中的线性布局?

我想知道是否可以在android中为线性布局创建阴影效果,如下所示.任何帮助,将不胜感激...

android shadow

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