如何将游标声明为全局变量

How to declare cursor as global variable

我有两个 classes,MainActivity.java 和 ImageAdapter.java 我已经在 main activity 中像这样声明了游标

public  Cursor cursor;

现在我想在我的第二个名为 imageAdapter.java.How 的 class 中访问那个变量 'cursor' 伙计们,这有可能吗?

您是否尝试为变量创建 getter 和 setter???或者您可以通过

将其设为静态
public static  Cursor cursor;

并像这样访问它:

MainActivity.cursor;

或者如果你制作 getter 和 setter 你可以像这样访问它:

MainActivity m = new MainActivity();
m.getCursor();
m.setCursor(new Cursor);

希望对您有所帮助!!!

像这样将光标传递给适配器

imageAdapter adapter = new imageAdapter(MainActivity.this, cursor);

您可以从您的适配器评估此光标 class。

Cursor cursor;
public imageAdapter(Activity activity, Cursor cursor) {
    this.cursor = cursor;
}

现在可以在getView(...)方法中访问游标的数据了。

如果您的 ImageAdapter 扩展 CursorAdapter 则在 MainActivity

中使用
adapter.swapCursor(yourCursor);

然后在 ImageAdapter 中调用 getCursor()

如果ImageAdapter不是从CursorAdapter扩展的,那么你可以在其中实现set方法。

private Cursor cursor;

public void setCursor(Cursor cursor){
    this.cursor = cursor;
}

并在 MainActivity 中设置为 imageAdapter.setCursor(yourCursor);

从 OOP 的角度来看,这通常比在 MainActivity 中将游标声明为静态或从 MainActivity 创建 ImageAdapter 依赖项更好。