sqlite 데이터베이스의 데이터를 Android의 회 전자 (드롭 다운)에 채우는 방법을 안내했습니다.Android 회 전자 - 비 정적 메서드 도움말에 대한 정적 참조를 만들 수 없습니다.
Cannot make a static reference to the non-static method fetchAllCategories() from the type DatabaseAdapter
내 코드는 다음과 같다 : EditTask에서
:
private void fillData() {
Cursor categoriesCursor;
Spinner categoriesSpinner = (Spinner) findViewById(R.id.spinDept);
categoriesCursor = DatabaseAdapter.fetchAllCategories();
startManagingCursor(categoriesCursor);
String[] from = new String[] { DatabaseAdapter.CAT_NAME };
int[] to = new int[] { R.id.tvDBViewRow }; //this part hasnt been implemented in to the layout yet
SimpleCursorAdapter categoriesAdapter = new SimpleCursorAdapter(this,
R.layout.db_view_row, categoriesCursor, from, to);
categoriesSpinner.setAdapter(categoriesAdapter);
}
그리고 내 DatabaseAdapter 클래스의
나는 다음과 같은 한 :public Cursor fetchAllCategories() {
if (mDb == null) {
this.open();
}
String tableName = "CAT_TABLE";
return mDb.query(tableName, new String[] { CAT_ID, CAT_NAME }, null,
null, null, null, null);
}
그러나, 나는 오류를 얻고있다
코드 위반 줄 :
categoriesCursor = DatabaseAdapter.fetchAllCategories();
저는 Java/Android에 익숙하지 않기 때문에 단순하지만 분명 할 수 있지만 도움이 많이되었습니다!
도움 주셔서 감사합니다. 코드의 두 번째 섹션은 "정적 컨텍스트에서 사용할 수 없습니다."및 "비 정적 필드 mDb에 정적 참조를 만들 수 없습니다."와 같은 추가 오류를 발생시킵니다. 첫 번째 섹션을 사용하면 다음과 같은 오류도 발생합니다. DatabaseAdapter 유형에 대해 fetchAllCategories() 메소드가 정의되지 않았습니다. – user319940
DatabaseAdapter를 자신의 구현에서 사용한 클래스 이름으로 바꿔야합니다. –
클래스 이름은 DatabaseAdapter입니다. 생성자에 다른 인수가 필요하므로 방금 DatabaseAdapter를 사용했습니다. myDbAdapter = new DatabaseAdapter (null); 이 문제를 해결 한 것으로 보이지만 여전히 categoriesCursor에 오류가 있습니다 : categoriesCursor를 확인할 수 없습니다. – user319940