0

I want use DataBase in my application. I use ListView for show database items, when click on ListView items, show detail in other activity! when click ListView Items for show detail and startActivity show me this error :

03-08 11:48:01.501 13623-13623/com.tellfa.dastanak E/AndroidRuntime: FATAL EXCEPTION: main
                                                                     Process: com.tellfa.dastanak, PID: 13623
                                                                     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tellfa.dastanak/com.tellfa.dastanak.Activities.StoryDetail_Page}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase com.tellfa.dastanak.Database.DataBase.getReadableDatabase()' on a null object reference
                                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
                                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
                                                                         at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                         at android.os.Looper.loop(Looper.java:135)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:5349)
                                                                         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:908)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
                                                                      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase com.tellfa.dastanak.Database.DataBase.getReadableDatabase()' on a null object reference
                                                                         at com.tellfa.dastanak.Activities.StoryDetail_Page.onCreate(StoryDetail_Page.java:39)
                                                                         at android.app.Activity.performCreate(Activity.java:6020)
                                                                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                                                                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2284)
                                                                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391) 
                                                                         at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309) 
                                                                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                         at android.os.Looper.loop(Looper.java:135) 
                                                                         at android.app.ActivityThread.main(ActivityThread.java:5349) 
                                                                         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:908) 
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703) 

Second Activity code:

public class StoryDetail_Page extends AppCompatActivity {

    FloatingActionButton story_fab_favorite;
    ImageView story_image_header;
    TextView story_text_description;
    SQLiteDatabase sqLiteDatabase;
    DataBase dataBase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.story_detail_page);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        story_fab_favorite = (FloatingActionButton) findViewById(R.id.story_favorite_fab);
        story_image_header = (ImageView) findViewById(R.id.story_header_image);
        story_text_description = (TextView) findViewById(R.id.story_content_text);

        final DataProvider dataProvider = (DataProvider) getIntent().getSerializableExtra("share_data");
        sqLiteDatabase = dataBase.getReadableDatabase();

        story_text_description.setText(dataProvider.getKey_description());

        sqLiteDatabase.close();
    }

ListView code (in fragment) :

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        dataProvider = (DataProvider) cat1FragAdapter.getItem(position);
        Bundle bundle = new Bundle();
        bundle.putSerializable("share_data", dataProvider);
        Intent intent = new Intent(getActivity(), StoryDetail_Page.class);
        intent.putExtras(bundle);
        startActivity(intent);
    }
});

How can i fit this problem? tnx all <3

erere
  • 87
  • 1
  • 3
  • 9
  • your DataBase class instance is null. You need to initialize it in onCreate() – Dalma Racz Mar 08 '16 at 08:32
  • @DalmaRacz, how can initialize this? i'm amateur . please send me code for sample. please . i really need this. thanks – erere Mar 08 '16 at 08:34
  • In your DataBase class you must extend SQLiteOpenHelper and have a constructor such as public DataBase(Context context) { super(context, DATABASE_NAME , null , DATABASE_VERSION ); } and then in your class do dataBase = new DataBase(this); – Dalma Racz Mar 08 '16 at 08:37
  • @DalmaRacz, thanks my dear friend. i fix it <3 – erere Mar 08 '16 at 08:41

0 Answers0