我試圖從我的「MainActivity.java」中的片段訪問SQLite數據庫,但我的數據庫函數在另一個文件「Database.java」中,因此調用的database_fragment.xml 「MainActivity」的「onCreateView」不能訪問這些函數......我應該直接將所有這些數據庫函數直接放入片段類中,以便它可以看到這些函數嗎?通過android中的一個片段訪問數據庫類
這裏是我的代碼的重要組成部分:
(IN MainActivity.java)
/**
* "fragment_database", shows the database list
*/
public static class subFragment extends Fragment {
public static final String ARG_MENU_NUMBER = "menu_number"; // Which sub-menu
public subFragment() {
// Empty constructor required for fragment subclasses
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
int i = getArguments().getInt(ARG_MENU_NUMBER);
View rootView;
if(i==0){
rootView = inflater.inflate(R.layout.fragment_database, container, false);
}else{
rootView = inflater.inflate(R.layout.fragment_help, container, false);
}
return rootView;
}
}
這裏就是XML不能達到的功能:
(IN Database.java )
public void onClick_DisplayRecords(View v) {
displayText("Clicked display record!");
Cursor cursor = myDb.getAllRows();
displayRecordSet(cursor);
}
錯誤消息:
java.lang.IllegalStateException:找不到在活動課com.mtl.android.spca.MainActivity爲的onClick處理程序的方法onClick_DisplayRecords(視圖)和視圖類android.widget.Button ID爲「btnDisplay」
我應該在MainActivity的onCreateView中添加這一行嗎?因爲它是假設返回一個視圖...即使它不是來自調用類,xml將能夠看到它嗎? Thx – Jaythaking
不知道你的程序應該做什麼,我無法回答這個問題。但總的來說,如果它與片段有關,它應該停留在片段中,否則將它放入活動中是可以的。 – PearsonArtPhoto
這是一個非常簡單的應用程序,它假設在正確選擇的片段中顯示數據庫...但是,所有與數據庫相關的函數都在外部Database.java中,如果必須重定向所有這些函數從MainActivity.java到Databse.java,因爲xml只能訪問活動... – Jaythaking