如何显示活动中的数据库数据?

时间:2019-05-31 07:27:49

标签: java android sql

我有一个android应用程序,我想在activity中的listview之一中显示数据库数据。我已经设法在listview上的fragment中显示它,但是现在我想对activity进行相同的处理。

我已经尝试过使用用于在fragment上显示数据的代码,并将其用于我的activity,但是即使进行了一些更改也无法正常工作,而且我仍然在@Override上出现错误。

这是我的活动代码:


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".

2 个答案:

答案 0 :(得分:4)

'onCreateView()方法仅适用于fragment,不能在activity中覆盖。'

将您所有的代码放入onCreate()的{​​{1}}方法中。会很好用的,谢谢

如果您还有其他问题,请进行讨论

答案 1 :(得分:0)

非常感谢您的回答!我做了修改,但是现在我在布局充气器和retur rootView上遇到了一些麻烦。有什么想法我可以纠正这个吗?请参阅下面的代码。

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;



    }


}