我需要Smali
语言专家的帮助。
我需要在下面的程序中使用公共标识0x7f0f0042
更改字符串的颜色。这样做的原因是我正在为Android应用程序构建主题。
我怎样才能做到这一点?
这是Smali代码google drive link。以下是它的部分转录。完整的代码对于SO问题的主体而言过于广泛。您会注意到...
分隔代码的顶部,中间和底部。中间部分是定义0x7f0f0042
的行。
.class public Lcom/samsung/dialer/impl/k;
.super Ljava/lang/Object;
.source "CallLogContextMenuHandlerImpl.java"
# interfaces
.implements Lcom/samsung/contacts/b/a;
# static fields
.field public static a:Ljava/lang/String;
.field public static b:Ljava/lang/Integer;
.field private static c:Ljava/lang/String;
.field private static d:Ljava/lang/Integer;
...
...
...
move-result v0
if-eqz v0, :cond_e
const/4 v0, 0x1
const/16 v1, 0x9
const/4 v2, 0x0
const v3, 0x7f0f0042
invoke-interface {p1, v0, v1, v2, v3}, Landroid/view/ContextMenu;->add(IIII)Landroid/view/MenuItem;
:cond_c
:goto_7
const-string v0, "KOR"
invoke-static {}, Lcom/samsung/contacts/util/l;->a()Lcom/samsung/contacts/util/l;
move-result-object v1
invoke-virtual {v1}, Lcom/samsung/contacts/util/l;->K()Ljava/lang/String;
move-result-object v1
...
...
...
.method public b(Landroid/view/View;)V
.locals 1
iget-object v0, p0, Lcom/samsung/dialer/impl/k;->A:Landroid/content/Context;
check-cast v0, Landroid/app/Activity;
invoke-virtual {v0, p1}, Landroid/app/Activity;->unregisterForContextMenu(Landroid/view/View;)V
return-void
.end method
答案 0 :(得分:0)
Android的字符串没有与之关联的颜色。通常会在布局中指定任何颜色。例如。对于TextView,文本的颜色使用android:textColor属性指定。
您希望使用apktool来反汇编apk的资源和布局,然后找到引用您正在谈论的字符串的布局文件。假设它是TextView或其子类,您可以将android:textColor属性设置或更改为您想要的颜色。