首页 > 解决方案 > 无法理解 Android Studio 上的 AnonymousClass5

问题描述

首先,很抱歉这个非常奇怪的问题。

我对 android 和 java 编程完全陌生。我在修理电脑时丢失了主要编写的源代码。所以我从编译的apk文件中提取了源代码。我完全搞糊涂了。

所有其他文件都可以。但在我的一个活动类文件中,我发现了一个术语“ AnonymousClass5 ”。我不知道这是我自己写的,还是替换了在提取 apk 文件时制作的东西。

我在网上搜索,但找不到任何参考。这是代码的一部分

public void processData() {
    String[] data = this.receiveddata.split("@-'''==='''///'''==='''-@");
    int datalen = data.length;
    int i = 0;
    while (i < datalen) {
        String[] data1 = data[i].split("@-''==='''-@");
        int sid = Integer.parseInt(data1[1]);
        .........................
        .........................
        AnonymousClass5 r8 = r0;
        final int i2 = sid;
        AnonymousClass5 r0 = new View.OnClickListener() {
            public void onClick(View v) {
                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(-1, -1);
                .........................
                .........................
            }
        }
        textView.setOnClickListener(r8);
        i++;
        data = data2;
    }
}

它杀死了我的时间。我被困在这一点上。所以我正在寻求天才的帮助。

再次为这个奇怪的问题和我的小知识感到抱歉。

标签: javaandroidandroid-studio

解决方案


Java 中没有像AnonymousClass5类这样的东西,但我认为在提取 apk 时,这个类是由编译器自动生成的。

要解决此问题,您应该将AnonymousClass5的引用替换为View.OnClickListener接口,如下面的代码:

View.OnClickListener r0 = new View.OnClickListener() {
        public void onClick(View v) {
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(-1, -1);
            .........................
            .........................
        }
    }

textView.setOnClickListener(r8);

推荐阅读