Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用CursorAdapter bindView()设置数据_Android_Android Cursor - Fatal编程技术网

Android 使用CursorAdapter bindView()设置数据

Android 使用CursorAdapter bindView()设置数据,android,android-cursor,Android,Android Cursor,我知道系统可以多次调用bindView(),对此我无能为力 我想在bindView()中设置一些变量值,如 public void bindView(View view, Context context, Cursor cursor) { int salary = cursor.getInt(1); MainActivity.totalSalary += salary; //totalSalary is a static field } 但是,

我知道系统可以多次调用
bindView()
,对此我无能为力

我想在
bindView()
中设置一些变量值,如

public void bindView(View view, Context context, Cursor cursor) {
        int salary = cursor.getInt(1);

        MainActivity.totalSalary += salary; //totalSalary is a static field        
}
但是,由于多次调用,数据会损坏和无效


我想不出有什么解决办法。。有什么想法吗?

在适配器的
swapCursor
方法中,您可以在光标上循环并计算工资,您可以在MainActivity之外计算工资。totalSalary+=salary;也来自数据库itself@RalphBergmann仅当活动重新启动时,我才使用
swapCursor
。(也就是说,调用了
onRestart()
)。在其他时候,我从新获取的记录创建游标适配器。因此,基本上,当应用程序创建时,我将无法计算
totalSalary
。编辑:我实际上是说我使用的是changeCursor(),而不是swapCursor()。这很关键吗?@Pavan“外部MainActivity.totalSalary+=salary;”是什么意思?是的。。我正在使用一个
AsyncTask
我调用的
ChangeCursorTask
,它使用
rawQuery()
并在其
onPostExecute()中调用
changeCursor
。我想我可以从那里执行另一个线程,它将再次从数据库中获取数据以获得总工资。我只是想省掉这一切。。有没有更好的方法?可以添加数据获取代码吗