从另一个类访问变量[]的问题

时间:2011-09-16 18:38:37

标签: java

我知道这是一个非常基本的问题,并且已经找到了像我这样的另一个问题,但老实说,我不知道自己做错了什么。

public class InteractiveArrayAdapter extends ArrayAdapter<Model> {

    private final List<Model> list;
    private final Activity context;

    public int teste;

    public InteractiveArrayAdapter(Activity context, List<Model> list) {
        super(context, R.layout.rowbuttonlayout, list);
        this.context = context;
        this.list = list;

    }

    public int getTest()
    {
        return teste;
    }

    static class ViewHolder {
        protected TextView text;
        protected CheckBox checkbox;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        teste = 2;
....
}
}

和其他班级:

try{

                InteractiveArrayAdapter adapt = new InteractiveArrayAdapter(this,
            getAPPS(0));
                int test = adapt.getTest();
                Toast.makeText(this, Integer.toString(test), Toast.LENGTH_LONG).show();
                Log.v("TAG",Integer.toString(test));
            }catch(Exception e)
                {
                Log.v("EXCEPTION",e.toString());
            }

编辑:我因为一个愚蠢的错误而变空了,现在我得到了原始的,并且预期为0,就像你们大多数人所说的那样。

在我的应用程序的某个时刻,每次单击一个复选框时,都会执行getView方法。我想逐步将它存储到一个数组[]字符串(i + 1)(我只是把int更容易理解 - 现在意识到这是一个错误),然后当用户输入ok时我想访问整个数组。想知道我是否有可能这样做。

所以当我这样做时

InteractiveArrayAdapter adapt = new InteractiveArrayAdapter(this,
                getAPPS(0));

这没有意义,因为我不需要再执行任何操作,我只想检索创建的数组 - 如果可能的话!

3 个答案:

答案 0 :(得分:2)

您的代码甚至无法编译。 return this.teste;应为return this.test;

答案 1 :(得分:2)

嗯,这不是直接复制/粘贴,因为这显然不会编译。无论何时处理实际错误或问题,最好粘贴实际代码。我们都是程序员,所以我们可以阅读它。

但是根据您上面显示的结构,您放入行return this.teste(应该是return this.test)的拼写错误都在您的代码中,或者您没有初始化构造函数中的实例变量test

在没有向我们展示您正在编写的实际代码的情况下,我们无法说(特别是初始化test变量的部分,并且缺少返回其值的部分 - 我们不介意读者,我恐怕。

所以,这是两个潜在的候选人。但是,另一方面,如果将test变量标记为public,则不需要为它们设置getter / setter方法,因为任何类都可以访问它们而无需通过方法调用。这就是公众的所作所为。

答案 2 :(得分:1)

但根据您的代码,这应该会发生什么。您不要调用B方法来更新teste变量。