java - 如何从SecondActivity调用MainActivity中的非静态方法?

标签 java android static non-static

public class SecondClass extends AppCompatActivity{

public void randomizareImagini(){

    int[] rndInt = new int[20];
    int[] id= new int[20];
    String[] imgName = new String[20];
    Random rand = new Random();
    int[] ar1 = new int[20];

    for (int i=1; i<16;i++){
        ar1[i] = rand.nextInt(3) + 1;
        rndInt[i]=ar1[i];
        imgName[i]="img"+rndInt[i];
        id[i] = getResources().getIdentifier(imgName[i], "drawable", getPackageName());
    }

    for (int i=0;i<15;i++){MainActivity.list.get(i).setImageResource(id[i+1]);}

}
}

如何将此方法调用到 MainActivity 中(我找不到它,因为它是非静态方法)?如果我将其设为静态,则其中的代码将无法工作,因为 getResources() (它必须是非静态的)。我哪里错了?我能做什么?

最佳答案

在单独的类中使用此方法

将方法更改为静态并添加参数

public static void randomizareImagini(Context context)

之后更改此行

id[i] = context.getResources().getIdentifier(imgName[i], "drawable", context.getPackageName());

public class SeparateClass {
    public static void randomizareImagini(Context context){

        int[] rndInt = new int[20];
        int[] id= new int[20];
        String[] imgName = new String[20];
        Random rand = new Random();
        int[] ar1 = new int[20];

        for (int i=1; i<16;i++){
            ar1[i] = rand.nextInt(3) + 1;
            rndInt[i]=ar1[i];
            imgName[i]="img"+rndInt[i];
            id[i] = context.getResources().getIdentifier(imgName[i], "drawable", context.getPackageName());
        }

        for (int i=0;i<15;i++){
            MainActivity.list.get(i).setImageResource(id[i+1]);}

    }
}

您可以使用以下方式调用此方法

SeparateClass.randomizareImagini(this);

关于java - 如何从SecondActivity调用MainActivity中的非静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44099752/

相关文章:

android - 我想将 android 通知标题和内容更改为另一种语言(更改为 "Sinhala")我该怎么做?

javascript - 从 C# 静态 Web 方法(页面方法)调用 Javascript 函数

function - Swift 类中的静态与类函数/变量?

java - 从一个数据库读取值并将其写入另一个数据库

java - 为什么加载 jruby 的可执行 jar 不能在名称中带有空格的文件夹(例如 Program files)下运行?

java - TestNG 参数无法识别字符串参数

java - java中的字符串解析

java - 滚动时根据回收站 View 标题更改选项卡

android - 在 Android/多线程上实现 JmDNS

static - 在 Mac OS X 上静态链接 libstdc++