How to display database data from an activity?

I have an android application and i want to display database data in one of the activity in a listview. I already managed to display it in a listview on a fragment, but now i want to apply the same process to an activity.

I already tried to take the code i used to display data on my fragment, and use it for my activity, but didn't work even after making some change, and i'm still getting an error on @Override.

Here is my activity code :


import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.example.schoolapp.DBHelper;
import com.example.schoolapp.R;

import java.util.ArrayList;
import java.util.HashMap;

public class AdminEvenementActivity3 extends AppCompatActivity {

    private TextView Date;

    DBHelper SchoolDB;

    String CONTENU_ANG;
    String CONTENU_ANG_DATE;


    HashMap<String,String> user;


    ListView CDCANGList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_evenement3);

        Date = (TextView) findViewById(R.id.Date);

        Intent incomingIntent = getIntent();
        String date = incomingIntent.getStringExtra("date");
        Date.setText(date);


    }

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        final View rootView = inflater.inflate(R.layout.fragment_cdc_ang, container, false);

        CDCANGList = rootView.findViewById(R.id.CDCANGList);
        SchoolDB = new DBHelper(AdminEvenementActivity3.this);


        SQLiteDatabase db = SchoolDB.getReadableDatabase();

        ArrayList<HashMap<String, String>> userList = new ArrayList<>();

        Cursor view = db.rawQuery("SELECT CONTENU_ANGLAIS_DATE, CONTENU_ANGLAIS FROM CONTENU_COURS_ANGLAIS", null);
        if (view.moveToFirst()){
            do {
                // Passing values

                user = new HashMap<>();

                CONTENU_ANG = view.getString(view.getColumnIndex("CONTENU_ANGLAIS"));

                CONTENU_ANG_DATE = view.getString(view.getColumnIndex("CONTENU_ANGLAIS_DATE"));

                user.put("Contenu",CONTENU_ANG);

                user.put("Date",CONTENU_ANG_DATE);


                userList.add(user);

            } while(view.moveToNext());

            Log.d("Contenu",userList.toString());

            Log.d("Date",userList.toString());

            ListAdapter adapter = new SimpleAdapter(AdminEvenementActivity3.this, userList, R.layout.cdcangrow,new String[]{"Contenu", "Date"}, new int[] . 
    {R.id.ContenuANG, R.id.ContenuANGDate});
            CDCANGList.setAdapter(adapter);


        }
        view.close();
        db.close();


        return rootView;
    }

    }```



Here is my layout holding the listview : 



    ```<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/CDCANGList"/>

    </RelativeLayout>```



And here is my layout for the arrangement of each row of the listview : 



    ```<?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <TextView
        android:id="@+id/ContenuANG"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:text="TextView"
        app:layout_constraintStart_toEndOf="@+id/textView3"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/ContenuANGDate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginStart="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginTop="24dp"
        android:text="TextView"
        app:layout_constraintStart_toEndOf="@+id/textView7"
        app:layout_constraintTop_toBottomOf="@+id/ContenuANG" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="8dp"
        android:drawableLeft="@drawable/ic_histgeo"
        android:text="Travail effectuer :"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="72dp"
        android:layout_marginLeft="72dp"
        android:layout_marginTop="50dp"
        android:layout_marginEnd="152dp"
        android:layout_marginRight="152dp"
        android:text="Date : "
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


    </android.support.constraint.ConstraintLayout>```




I'm expecting each row of the table to display in the listview of my activity. I'm getting the following error message caused by the "@Override" : "error: method does not override or implement a method from a supertype".

Upvotes: 0

Views: 67

Answers (2)

Thanks you a lot for your answer! I did the modification, but now i'm having some troubles on my layout inflater and my retur rootView. Any ideas how i could correct this? See my code below.

package com.example.schoolapp.Admin;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.example.schoolapp.DBHelper;
import com.example.schoolapp.R;

import java.util.ArrayList;
import java.util.HashMap;

public class AdminEvenementActivity3 extends AppCompatActivity {

    private TextView Date;

    DBHelper SchoolDB;

    String CONTENU_ANG;
    String CONTENU_ANG_DATE;


    HashMap<String,String> user;


    ListView CDCANGList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_evenement3);

        Date = (TextView) findViewById(R.id.Date);

        Intent incomingIntent = getIntent();
        String date = incomingIntent.getStringExtra("date");
        Date.setText(date);


        final View rootView = inflater.inflate(R.layout.fragment_cdc_ang, container, false);


        CDCANGList = rootView.findViewById(R.id.CDCANGList);
        SchoolDB = new DBHelper(AdminEvenementActivity3.this);


        SQLiteDatabase db = SchoolDB.getReadableDatabase();

        ArrayList<HashMap<String, String>> userList = new ArrayList<>();

        Cursor view = db.rawQuery("SELECT CONTENU_ANGLAIS_DATE, CONTENU_ANGLAIS FROM CONTENU_COURS_ANGLAIS", null);
        if (view.moveToFirst()){
            do {
                // Passing values

                user = new HashMap<>();

                CONTENU_ANG = view.getString(view.getColumnIndex("CONTENU_ANGLAIS"));

                CONTENU_ANG_DATE = view.getString(view.getColumnIndex("CONTENU_ANGLAIS_DATE"));

                user.put("Contenu",CONTENU_ANG);

                user.put("Date",CONTENU_ANG_DATE);


                userList.add(user);

            } while(view.moveToNext());

            Log.d("Contenu",userList.toString());

            Log.d("Date",userList.toString());

            ListAdapter adapter = new SimpleAdapter(AdminEvenementActivity3.this, userList, R.layout.cdcangrow,new String[]{"Contenu", "Date"}, new int[]{R.id.ContenuANG, R.id.ContenuANGDate});
            CDCANGList.setAdapter(adapter);


        }
        view.close();
        db.close();


        return rootView;



    }


}

Upvotes: 0

Muhmmad Umair
Muhmmad Umair

Reputation: 140

'onCreateView() method is only for fragment it cannot be override in activity.'

put you all the code in onCreate() method of your activity. it will be working pretty fine Thanks

if you feel any other problem please discuss

Upvotes: 4

Related Questions