안녕하세요 "KnowledgeBaseHelper"라는 SQLiteOpenHelper를 확장하는 클래스가 있습니다. Activity를 확장하는 클래스가있는 동안 잠시 사용했지만 ListActivity를 ListFragment로 사용하기로 결정했다면 문제는 "KnowledgeBaseHelper helper = new KnowledgeBaseHelper와 같은 KnowledgeBaseHelper라는 클래스를 인스턴스화하려고했을 때 문제가 발생했습니다. (ListActivity.this); " 그것은 나에게 "생성자 KnowledgeBaseHelper (ListActivity)가 정의되지 않았습니다"라는 오류를냅니다.ListFragment에서 SQLiteOpenHelper 클래스를 인스턴스화하는 방법은 무엇입니까?
이것은 대개 ListActivity를 확장 할 때 작동하지만 현재는이 오류가 있습니다. 인스턴스화가 ListActivity 및 FragmentActivity와 다른가? 난 단지 몇 가지를 포함하기로 결정 그래서
감사합니다 아래
내 코딩 SQLiteOpenHelper를 들어public class ListActivity extends ListFragment {
ArrayList<String> symptomList;
String name;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
return inflater.inflate(R.layout.fragment_generalsymptoms, container,
false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
new LoadSymptoms().execute();
}
class LoadSymptoms extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
KnowledgeBaseHelper helper = new KnowledgeBaseHelper(
ListActivity.this);
return null;
}
}
이다, 나는 아주 긴 코드 및 방법이있다.
public class KnowledgeBaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "docdroid";
//... I deleted the following lines
public KnowledgeBaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
// Create Clinic Table
createTable(db, TABLE_CLINIC, CLINIC_COLUMN);
//... I deleted the following lines
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CLINIC);
onCreate(db);
//... I deleted the following lines
}
}
Fragments에서 SQLiteOpenHelper를 확장하는 클래스를 인스턴스화하는 다른 방법이 있습니까?
감사합니다. @laalto! 매력처럼 일했습니다. 죄송합니다. 답변을 투표 할 담당자가 충분하지 않습니다. – sander126
@ sander126 다음이 대답을 수락하십시오. –
눈금을 클릭하십시오. 나는 표를 똑딱 거리기 위해 몇 분을 기다려야한다. 이제 끝내 버렸습니다. 고마워요! – sander126