如何从 SecondActivity 调用 MainActivity 中的非静态方法?
How to call a non-static method in MainActivity from SecondActivity?
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() (它必须是非静态的)。我哪里错了?我能做什么?
从技术上讲,如果您想调用非静态方法,则需要此 class 的实例。
SecondClass instance = new SecondClass();
instance.randomizareImagini();
单独使用此方法class
将方法更改为静态和参数添加参数
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);
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() (它必须是非静态的)。我哪里错了?我能做什么?
从技术上讲,如果您想调用非静态方法,则需要此 class 的实例。
SecondClass instance = new SecondClass();
instance.randomizareImagini();
单独使用此方法class
将方法更改为静态和参数添加参数
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);