는 내가 커서 객체에 close()를 메서드를 호출 할 때 왜 그 빈 목록보기을 내 ListActivity 및 해당되는 이해에 문제가? ListView에 빈()
나 자신에게 조금 설명하게
...은 내가 DB에서 일부 값을 retreive 내 커서 객체의 결과를 얻을. 그 후 내 SimpleCursorAdapter을 만들고 데이터베이스의 열을 내 의 필드로 바인딩합니다. listView. 내가 에서 onCreate() 방법 내 목록보기의 끝에서 cursor.close()를 호출하면
매력처럼 작동하지만 ...
는 빈 표시됩니다?
내가 cursor.close()하고 완벽 의미가 호출 될 때까지 그들이 거기 커서에서 로그 캣에 값을 기록하면,하지만 cursor.close()를 호출 할 때 왜 listAdapter은 비워 ?? ? 나는
왜 그렇게입니다 ... 목록보기 우리 활동이 파괴 될 때까지에 "바인더 제본"되는 값을 유지하기 ListAdapter listAdapter = 새로운 SimpleCursorAdapter (...)을 기대? 언제 그리고 왜 커서를 닫아야합니까?
public class ListTrainingsView extends ListActivity{
private SQLiteDatabase db;
private ListAdapter listAdapter;
private Cursor cursor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_trainings);
DatabaseHelper helper = new DatabaseHelper(this);
this.db = helper.getWritableDatabase();
this.cursor = db.query("trainings", fields, null, null, null, null, null);
startManagingCursor(cursor);
this.listAdapter = new SimpleCursorAdapter(this,
R.layout.list_trainings_item,
cursor,
new String[] {"name"},
new int[] { R.id.name_entry}
);
this.setListAdapter(this.listAdapter);
//If I call
//cursor.close();
//shown list is empty
또 다른 질문은 질문의 기본 Java 언어 유형의 더 ... 나는 PHP 각종 배경에서 와서 당신이 멤버 변수를 정의하면 거기 당신은 구문 $ this-를 사용하여 객체 메소드에서 함께 일해야> 커서. 나는 Android/Java에서 this.cursor.getCount()을 사용하여 참조/값을 가져올 필요가 없다는 것을 알아 냈습니다. 그것은 말하기 충분하다 cursor.getCount() 어떻게 이것이 허용됩니까?