Dobry Panie/Pany,
próbuję zapisywać dane w SQLite andka w pierwszej wersji coś popier.... w klasach z bazą i nie mogłem dojść co i gdzie. W końcu zerżnąłem kod z:
https://www.journaldev.com/9438/android-sqlite-database-example-tutorial
i dalej lipa tym razem przy użyciu listview wywala apkę
kod fragmentu:
public class Help extends Fragment {
private DBManager dbManager;
private ListView listView;
private SimpleCursorAdapter adapter;
final String[] from = new String[]{DatabaseHelper._ID,
DatabaseHelper.SUBJECT, DatabaseHelper.DESC};
final int[] to = new int[]{R.id.id, R.id.title, R.id.desc};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
final View view = inflater.inflate(R.layout.activity_help, container, false);
((MainActivity) getActivity()).getSupportActionBar().setTitle(R.string.title_activity_help);
dbManager = new DBManager(this.getActivity());
dbManager.open();
Cursor cursor = dbManager.fetch();
listView = (ListView) getActivity().findViewById(R.id.list_view);
///jak od tego miejsca zakomentuję nie wywala apki
listView.setEmptyView(getActivity().findViewById(R.id.empty));
adapter = new SimpleCursorAdapter(getActivity(), R.layout.activity_view_record, cursor, from, to, 0);
// adapter.notifyDataSetChanged();
listView.setAdapter(adapter);
// OnCLickListiner For List Items
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long viewId) {
TextView idTextView = (TextView) view.findViewById(R.id.id);
TextView titleTextView = (TextView) view.findViewById(R.id.title);
TextView descTextView = (TextView) view.findViewById(R.id.desc);
String id = idTextView.getText().toString();
String title = titleTextView.getText().toString();
String desc = descTextView.getText().toString();
Intent modify_intent = new Intent(getActivity(), ModifyContryActivity.class);
modify_intent.putExtra("title", title);
modify_intent.putExtra("desc", desc);
modify_intent.putExtra("id", id);
startActivity(modify_intent);
}
});
return view;
}
coś pomieszałem przy przejściu z activa na fragment czy dalej błąd leży po stronie klas bazy?
edit;
sorki zapomniałem wrzucić loga
wywala:
Process: xxx.fly_control, PID: 29732
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ListView.setEmptyView(android.view.View)' on a null object reference
at xxx.fly_control.fragments.Help.onCreateView(Help.java:54)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:703)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5389)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)