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?
或者,如果有任何其他方式重用变量...请建议我.
任何帮助,将不胜感激 :)
提前致谢 :)
我不是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)