我知道这是一个非常基本的问题,并且已经找到了像我这样的另一个问题,但老实说,我不知道自己做错了什么。
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));
这没有意义,因为我不需要再执行任何操作,我只想检索创建的数组 - 如果可能的话!
答案 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变量。