我应该使用静电还是吸气剂/定型剂?

Ani*_*gla 4 java arrays variables static android

我正在android中创建一个小型的musicplayer应用程序,其中我的主要活动是使用许多这样的静态变量: -

 public class Fragmentactivity extends FragmentActivity {

         static ArrayList<String> s3=new ArrayList<String>();
        static ArrayList<String> s5=new ArrayList<String>();
        static ArrayList<String> songpaths=new ArrayList<String>();
         static ArrayList<String> alldirectorypaths=new ArrayList<String>();
         static ArrayList<String> internalpaths=new ArrayList<String>();
         static ArrayList<String> tempsongnames=new ArrayList<String>();
         static ArrayList<Bitmap> thumbnails=new ArrayList<Bitmap>();
         static int internal=0;
         static ArrayList<String> folderpaths=new ArrayList<String>();
    //my addtional code after it
    }
Run Code Online (Sandbox Code Playgroud)

我正在其他类中访问它,如: -

  public class A{
    Fragmentactivity.songpaths.get(index);
    //and in  many other classes also i used it
Run Code Online (Sandbox Code Playgroud)

在我的大多数课程中,我已经制作了许多静态变量但是现在我了解到这不是开发的好习惯.

我应该继续使用静态还是应该使用getter/setter?

或者,如果有任何其他方式重用变量...请建议我.

任何帮助,将不胜感激 :)

提前致谢 :)

Sur*_*tta 8

我不是Android专家.static具有特殊含义,可以在所有实例之间共享它们.

因此,如果你要在它们的多个实例之间共享它们,那就用当前的方式进行.

我应该继续静态还是应该使用getter/setter?

假设你想要共享变量,我会将它们混合在一起

Fragmentactivity.getSongNames().get(index);
Run Code Online (Sandbox Code Playgroud)

更新:

如果你没有对它进行多次讨论,只需摆脱静态并为其提供getter和setter.这就是你所需要的一切.

public class Fragmentactivity extends FragmentActivity {

     private ArrayList<String> s3=new ArrayList<String>();

   ...
   ...
    public ArrayList<String> getS3() {
    return this.s3;
   }

   public setS3(ArrayList<String> input){
   this.s3= input;
  }

...
Run Code Online (Sandbox Code Playgroud)