제가 AppcompactActivity 에서는 성공한 소스를 그대로 가져왔어요! 성공한 소스는 커스텀 리스트뷰인데 cursorAdapter를 통해 Db에있는 내용을 가져오는건데요! 근데 이번엔 mainActivity 안에 있는 2개의 탭 그러니까 하나의 fragment에서 사용해야돼서 똑같이 복사해왔는데... 오류가 나는데 오류메세지는
1-08 01:15:10.966 15140-15140/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.je.activitytest1015, PID: 15140
java.lang.NullPointerException
at com.example.je.activitytest1015.Tabs1.selectDB(Tabs1.java:78)
at com.example.je.activitytest1015.Tabs1.onCreateView(Tabs1.java:60)
뭐가 잘못된걸까요..?앱이 아예 꺼져버리네요 ㅠㅠㅠ 고수님들 제발 도와주세요!!ㅠㅠㅠ
Tabs1.java
public class Tabs1 extends android.support.v4.app.Fragment {
PopupMenu popupMenu;
SQLiteDatabase sqlitedb;
DBManager dbmanager;
Cursor cursor;
private ListView mListView = null;
String sql;
DBAdapter1 dbAdapter1;
public Tabs1() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true);
View view = inflater.inflate(R.layout.activity_tab1, container, false);
// Inflate the layout for this fragment
mListView = (ListView) getActivity().findViewById(R.id.list);
dbAdapter1 = new DBAdapter1(getActivity(), cursor);
dbmanager = new DBManager(getActivity());
selectDB();
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_main, menu);
}
private void selectDB(){
sqlitedb = dbmanager.getWritableDatabase();
sql = "SELECT * FROM license;";
cursor = sqlitedb.rawQuery(sql, null);
if(cursor.getCount() > 0){
getActivity().startManagingCursor(cursor);
DBAdapter1 dbAdapter = new DBAdapter1(getActivity(), cursor);
mListView.setAdapter(dbAdapter);
}
}//이하 생략
그리고 MainActivity.java 에서는 tabs1.java를 이런식으로 호출합니다
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a DummySectionFragment (defined as a static inner class
// below) with the page number as its lone argument.
switch(position) {
case 0:
Tabs1=new Tabs1();
return Tabs1;
case 1:
Tabs2=new Tabs2();
return Tabs2;
}
return null;
}