Android全局变量,getter,setter,error,

时间:2011-02-21 13:48:59

标签: java android global-variables

我试着将一些数据添加到“全局变量”中。没有窗口的“Conection”类

for (int in = 7; in < arAll.length; in++) {
        if (arAll[in].toString().endsWith("/")) {
            ((MyApplication) this.getApplication()).setPath(arAll[in]
                    .toString());
        } else {
            ((MyApplication) this.getApplication()).setFile(arAll[in]
                    .toString());
        }

MyApplication getter和setter:

private ArrayList<String> file = new ArrayList<String>();
private ArrayList<String> path = new ArrayList<String>();
private ArrayList<String> all = new ArrayList<String>();


public void removeAll() {
    this.file.clear();
    this.path.clear();
    this.all.clear();

}

public int len() {
    return this.all.size();
}

public String getStrbyId (int i) {
    return this.all.get(i).toString();
}

public ArrayList<String> getFile() {
    return this.file;
}

public void setFile(String file) {
    this.file.add(file);
    setAll(file);
    Log.v("",file);
}

public ArrayList<String> getPath() {
    return this.path;
}

public void setPath(String path) {
    this.path.add(path);
    setAll(path);
    Log.v("",path);
}
public ArrayList<String> getAll() {
    Log.v("",String.valueOf(len()));
    return this.all;
}

private void setAll(String all) {
    this.all.add(all);
}

在清单<application android:name="MyApplication"

当我尝试执行第一个void时,我有一个错误。

1 个答案:

答案 0 :(得分:1)

您通过应用程序上下文使用全局变量的事实很可能是您的应用程序中存在不正确设计的内容。您根本不需要使用这样的全局变量,它可能是您的错误的潜在来源(传递上下文并且有时需要访问这些全局变量,但在这种情况下可能不是这样)。相反,你应该做的是在组件之间传递必要的变量并在每个组件中使用它们。 (Activity,Service,ContentProvider。)所以也许不是试图让这个hacky工作起作用,你可以重新考虑为什么需要全局变量。