Java 无法在ArrayAdapter上解析构造函数

Java 无法在ArrayAdapter上解析构造函数,java,android,sqlite,Java,Android,Sqlite,我在subjects表中添加了值,但无法使用ListView检索这些值 我的代码: DatabaseHelper.java public class DatabaseHelper extends SQLiteOpenHelper { SQLiteDatabase db; public static final String DATABASE_NAME = "myexam.db"; public static final int DATABASE_VERSION = 1;

我在subjects表中添加了值,但无法使用ListView检索这些值

我的代码:

DatabaseHelper.java

 public class DatabaseHelper extends SQLiteOpenHelper {
    SQLiteDatabase db;
    public static final String DATABASE_NAME = "myexam.db";
    public static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context,DATABASE_NAME, null, DATABASE_VERSION);
        Log.d("Database operations", "Database successfully created!");
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_USER = "CREATE TABLE " +
                user.TABLE_USER + "(" +
                user.USER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                user.USER_EMAIL + " VARCHAR NOT NULL," +
                user.USER_PASS + " VARCHAR NOT NULL," +
                user.USER_CPASS + " VARCHAR NOT NULL);";

        String CREATE_SUBJECT = "CREATE TABLE " +
                subject.TABLE_SUBJECT + "(" +
                subject.USER_ID + " INTEGER," +
                subject.SUBUSER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                subject.SUBJECT_NAME + " TEXT NOT NULL," +
                subject.SUBJECT_RESULTS + " TEXT NOT NULL," +
                subject.SUBJECT_HOURS + " TEXT NOT NULL);";

        db.execSQL(CREATE_USER);
        db.execSQL(CREATE_SUBJECT);
        Log.d("Database operations", "Table created!");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + user.TABLE_USER);
        db.execSQL("DROP TABLE IF EXISTS " + subject.TABLE_SUBJECT);
        onCreate(db);
    }

    //insert User
    public boolean insertUser(String uid, String email, String pass, String cpass) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(user.USER_ID, uid);
        cv.put(user.USER_EMAIL, email);
        cv.put(user.USER_PASS, pass);
        cv.put(user.USER_CPASS, cpass);
        long user_id =  db.insert(user.TABLE_USER, null, cv);

        if (user_id == -1){
            return false;
        }else
            return true;
    }

    //get User
    public Cursor getUser(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ user.USER_ID + ", " + user.USER_PASS + " FROM " + user.TABLE_USER;

        Cursor c = db.rawQuery(selectQuery, null);

        return c;
    }

    //insert Subjects
    public boolean insertSubjects(String uid, String sname, String sresults, String shours) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(subject.SUBUSER_ID, uid);
        cv.put(subject.SUBJECT_NAME, sname);
        cv.put(subject.SUBJECT_RESULTS, sresults);
        cv.put(subject.SUBJECT_HOURS, shours);
        long sub_id =  db.insert(subject.TABLE_SUBJECT, null, cv);

        if (sub_id == -1){
            return false;
        }else
            return true;
    }

    public Cursor getSubjects(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ subject.SUBUSER_ID +
                            ", " + subject.SUBJECT_NAME +
                            ", " + subject.SUBJECT_RESULTS +
                            ", " + subject.SUBJECT_HOURS +
                            " FROM " + subject.TABLE_SUBJECT +
                            " WHERE " + subject.SUBUSER_ID +
                            " = " + subject.USER_ID;

        Cursor c = db.rawQuery(selectQuery, null);
        return c;
    }
}
 public class user {
    public static final String USER_ID = "etID";
    public static final String USER_EMAIL = "etEmail";
    public static final String USER_PASS = "etPassword";
    public static final String USER_CPASS = "etCPassword";
    public static final String TABLE_USER = "user";
}
public class addSubjects extends AppCompatActivity {

    EditText etUID, etSubjects, etResults, etHours;
    DatabaseHelper databaseHelper;

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

        etUID = (EditText)findViewById(R.id.etUID);
        etSubjects = (EditText)findViewById(R.id.etSubjects);
        etResults = (EditText)findViewById(R.id.etResults);
        etHours = (EditText)findViewById(R.id.etHours);

        databaseHelper = new DatabaseHelper(this);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_add_subjects, menu);
        return true;
    }

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

       if(id == android.R.id.home){
           Intent i = new Intent(this, subjects.class);
           startActivity(i);
           finish();
       }

        //noinspection SimplifiableIfStatement
       if (id == R.id.action_home) {
           Intent i = new Intent(this, Menus.class);
           startActivity(i);
           finish();
       }
       return super.onOptionsItemSelected(item);
    }

    public void SaveInfo(View view){
        String userid = etUID.getText().toString();
        String subjects = etSubjects.getText().toString();
        String results = etResults.getText().toString();
        String hours = etHours.getText().toString();

        if(userid.equals("") || subjects.equals("") || results.equals("") || hours.equals("")){
            Toast.makeText(addSubjects.this, "Please key in all the information", Toast.LENGTH_SHORT).show();
        }
        else if((!results.equals("A")) && (!results.equals("B")) && (!results.equals("C")) && (!results.equals("D")) && (!results.equals("F"))){
            Toast.makeText(getBaseContext(), "Please key in valid results!", Toast.LENGTH_SHORT).show();
        }
        else if((!hours.equals("One")) && (!hours.equals("Two")) && (!hours.equals("Three")) && (!hours.equals("Four"))){
            Toast.makeText(getBaseContext(), "Please key in valid hours!", Toast.LENGTH_SHORT).show();
        }
        else{
            boolean isInserted = databaseHelper.insertSubjects(userid, subjects, results, hours);
            if(isInserted = true){
                Toast.makeText(addSubjects.this, "Added Successfully!!!", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, subjects.class);
                startActivity(i);
                finish();
            }else{
                Toast.makeText(addSubjects.this, "Unsuccessfully added!!!", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
package com.smartexamorganizer.ListData;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.smartexamorganizer.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Acer on 12/18/2015.
 */
public class ListDataAdapter extends ArrayAdapter {
    List list = new ArrayList();
    public ListDataAdapter(Context context, int resource) {
        super(context, resource);
    }

    static class LayoutHandler{
        TextView SUB_NAME, SUB_RESULTS, SUB_HOURS;
    }
    @Override
    public void add(Object object) {
        super.add(object);
        list.add(object);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        LayoutHandler layoutHandler;
        if(row == null){
            LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = layoutInflater.inflate(R.layout.display_subjects_row, parent, false);
            layoutHandler = new LayoutHandler();
            layoutHandler.SUB_NAME = (TextView)row.findViewById(R.id.tvSub_Name);
            layoutHandler.SUB_RESULTS = (TextView)row.findViewById(R.id.tvSub_Results);
            layoutHandler.SUB_HOURS = (TextView)row.findViewById(R.id.tvSub_Hours);
            row.setTag(layoutHandler);
        }
        else{
            layoutHandler = (LayoutHandler)row.getTag();
        }
        SubjectProvider subjectProvider = (SubjectProvider) this.getItem(position);
        layoutHandler.SUB_NAME.setText(subjectProvider.getSub_name());
        layoutHandler.SUB_RESULTS.setText(subjectProvider.getSub_results());
        layoutHandler.SUB_HOURS.setText(subjectProvider.getSub_hours());

        return row;
    }
}
public class SubjectProvider {
    private String sub_name;
    private String sub_results;
    private String sub_hours;

    public SubjectProvider(String sub_name, String sub_results, String sub_hours){
        this.sub_name = sub_name;
        this.sub_results = sub_results;
        this.sub_hours = sub_hours;
    }

    public String getSub_hours() {
        return sub_hours;
    }

    public void setSub_hours(String sub_hours) {
        this.sub_hours = sub_hours;
    }

    public String getSub_name() {
        return sub_name;
    }

    public void setSub_name(String sub_name) {
        this.sub_name = sub_name;
    }

    public String getSub_results() {
        return sub_results;
    }

    public void setSub_results(String sub_results) {
        this.sub_results = sub_results;
    }
}
subject.java

public class subject {
    public static final String SUBUSER_ID = "etUID";
    public static final String USER_ID = user.USER_ID;
    public static final String SUBJECT_NAME = "etSubjects";
    public static final String SUBJECT_RESULTS = "etResults";
    public static final String SUBJECT_HOURS = "etHours";
    public static final String TABLE_SUBJECT = "subjects";
}
user.java

 public class DatabaseHelper extends SQLiteOpenHelper {
    SQLiteDatabase db;
    public static final String DATABASE_NAME = "myexam.db";
    public static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context,DATABASE_NAME, null, DATABASE_VERSION);
        Log.d("Database operations", "Database successfully created!");
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_USER = "CREATE TABLE " +
                user.TABLE_USER + "(" +
                user.USER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                user.USER_EMAIL + " VARCHAR NOT NULL," +
                user.USER_PASS + " VARCHAR NOT NULL," +
                user.USER_CPASS + " VARCHAR NOT NULL);";

        String CREATE_SUBJECT = "CREATE TABLE " +
                subject.TABLE_SUBJECT + "(" +
                subject.USER_ID + " INTEGER," +
                subject.SUBUSER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                subject.SUBJECT_NAME + " TEXT NOT NULL," +
                subject.SUBJECT_RESULTS + " TEXT NOT NULL," +
                subject.SUBJECT_HOURS + " TEXT NOT NULL);";

        db.execSQL(CREATE_USER);
        db.execSQL(CREATE_SUBJECT);
        Log.d("Database operations", "Table created!");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + user.TABLE_USER);
        db.execSQL("DROP TABLE IF EXISTS " + subject.TABLE_SUBJECT);
        onCreate(db);
    }

    //insert User
    public boolean insertUser(String uid, String email, String pass, String cpass) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(user.USER_ID, uid);
        cv.put(user.USER_EMAIL, email);
        cv.put(user.USER_PASS, pass);
        cv.put(user.USER_CPASS, cpass);
        long user_id =  db.insert(user.TABLE_USER, null, cv);

        if (user_id == -1){
            return false;
        }else
            return true;
    }

    //get User
    public Cursor getUser(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ user.USER_ID + ", " + user.USER_PASS + " FROM " + user.TABLE_USER;

        Cursor c = db.rawQuery(selectQuery, null);

        return c;
    }

    //insert Subjects
    public boolean insertSubjects(String uid, String sname, String sresults, String shours) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(subject.SUBUSER_ID, uid);
        cv.put(subject.SUBJECT_NAME, sname);
        cv.put(subject.SUBJECT_RESULTS, sresults);
        cv.put(subject.SUBJECT_HOURS, shours);
        long sub_id =  db.insert(subject.TABLE_SUBJECT, null, cv);

        if (sub_id == -1){
            return false;
        }else
            return true;
    }

    public Cursor getSubjects(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ subject.SUBUSER_ID +
                            ", " + subject.SUBJECT_NAME +
                            ", " + subject.SUBJECT_RESULTS +
                            ", " + subject.SUBJECT_HOURS +
                            " FROM " + subject.TABLE_SUBJECT +
                            " WHERE " + subject.SUBUSER_ID +
                            " = " + subject.USER_ID;

        Cursor c = db.rawQuery(selectQuery, null);
        return c;
    }
}
 public class user {
    public static final String USER_ID = "etID";
    public static final String USER_EMAIL = "etEmail";
    public static final String USER_PASS = "etPassword";
    public static final String USER_CPASS = "etCPassword";
    public static final String TABLE_USER = "user";
}
public class addSubjects extends AppCompatActivity {

    EditText etUID, etSubjects, etResults, etHours;
    DatabaseHelper databaseHelper;

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

        etUID = (EditText)findViewById(R.id.etUID);
        etSubjects = (EditText)findViewById(R.id.etSubjects);
        etResults = (EditText)findViewById(R.id.etResults);
        etHours = (EditText)findViewById(R.id.etHours);

        databaseHelper = new DatabaseHelper(this);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_add_subjects, menu);
        return true;
    }

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

       if(id == android.R.id.home){
           Intent i = new Intent(this, subjects.class);
           startActivity(i);
           finish();
       }

        //noinspection SimplifiableIfStatement
       if (id == R.id.action_home) {
           Intent i = new Intent(this, Menus.class);
           startActivity(i);
           finish();
       }
       return super.onOptionsItemSelected(item);
    }

    public void SaveInfo(View view){
        String userid = etUID.getText().toString();
        String subjects = etSubjects.getText().toString();
        String results = etResults.getText().toString();
        String hours = etHours.getText().toString();

        if(userid.equals("") || subjects.equals("") || results.equals("") || hours.equals("")){
            Toast.makeText(addSubjects.this, "Please key in all the information", Toast.LENGTH_SHORT).show();
        }
        else if((!results.equals("A")) && (!results.equals("B")) && (!results.equals("C")) && (!results.equals("D")) && (!results.equals("F"))){
            Toast.makeText(getBaseContext(), "Please key in valid results!", Toast.LENGTH_SHORT).show();
        }
        else if((!hours.equals("One")) && (!hours.equals("Two")) && (!hours.equals("Three")) && (!hours.equals("Four"))){
            Toast.makeText(getBaseContext(), "Please key in valid hours!", Toast.LENGTH_SHORT).show();
        }
        else{
            boolean isInserted = databaseHelper.insertSubjects(userid, subjects, results, hours);
            if(isInserted = true){
                Toast.makeText(addSubjects.this, "Added Successfully!!!", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, subjects.class);
                startActivity(i);
                finish();
            }else{
                Toast.makeText(addSubjects.this, "Unsuccessfully added!!!", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
package com.smartexamorganizer.ListData;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.smartexamorganizer.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Acer on 12/18/2015.
 */
public class ListDataAdapter extends ArrayAdapter {
    List list = new ArrayList();
    public ListDataAdapter(Context context, int resource) {
        super(context, resource);
    }

    static class LayoutHandler{
        TextView SUB_NAME, SUB_RESULTS, SUB_HOURS;
    }
    @Override
    public void add(Object object) {
        super.add(object);
        list.add(object);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        LayoutHandler layoutHandler;
        if(row == null){
            LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = layoutInflater.inflate(R.layout.display_subjects_row, parent, false);
            layoutHandler = new LayoutHandler();
            layoutHandler.SUB_NAME = (TextView)row.findViewById(R.id.tvSub_Name);
            layoutHandler.SUB_RESULTS = (TextView)row.findViewById(R.id.tvSub_Results);
            layoutHandler.SUB_HOURS = (TextView)row.findViewById(R.id.tvSub_Hours);
            row.setTag(layoutHandler);
        }
        else{
            layoutHandler = (LayoutHandler)row.getTag();
        }
        SubjectProvider subjectProvider = (SubjectProvider) this.getItem(position);
        layoutHandler.SUB_NAME.setText(subjectProvider.getSub_name());
        layoutHandler.SUB_RESULTS.setText(subjectProvider.getSub_results());
        layoutHandler.SUB_HOURS.setText(subjectProvider.getSub_hours());

        return row;
    }
}
public class SubjectProvider {
    private String sub_name;
    private String sub_results;
    private String sub_hours;

    public SubjectProvider(String sub_name, String sub_results, String sub_hours){
        this.sub_name = sub_name;
        this.sub_results = sub_results;
        this.sub_hours = sub_hours;
    }

    public String getSub_hours() {
        return sub_hours;
    }

    public void setSub_hours(String sub_hours) {
        this.sub_hours = sub_hours;
    }

    public String getSub_name() {
        return sub_name;
    }

    public void setSub_name(String sub_name) {
        this.sub_name = sub_name;
    }

    public String getSub_results() {
        return sub_results;
    }

    public void setSub_results(String sub_results) {
        this.sub_results = sub_results;
    }
}
addSubject.java

 public class DatabaseHelper extends SQLiteOpenHelper {
    SQLiteDatabase db;
    public static final String DATABASE_NAME = "myexam.db";
    public static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context,DATABASE_NAME, null, DATABASE_VERSION);
        Log.d("Database operations", "Database successfully created!");
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_USER = "CREATE TABLE " +
                user.TABLE_USER + "(" +
                user.USER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                user.USER_EMAIL + " VARCHAR NOT NULL," +
                user.USER_PASS + " VARCHAR NOT NULL," +
                user.USER_CPASS + " VARCHAR NOT NULL);";

        String CREATE_SUBJECT = "CREATE TABLE " +
                subject.TABLE_SUBJECT + "(" +
                subject.USER_ID + " INTEGER," +
                subject.SUBUSER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                subject.SUBJECT_NAME + " TEXT NOT NULL," +
                subject.SUBJECT_RESULTS + " TEXT NOT NULL," +
                subject.SUBJECT_HOURS + " TEXT NOT NULL);";

        db.execSQL(CREATE_USER);
        db.execSQL(CREATE_SUBJECT);
        Log.d("Database operations", "Table created!");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + user.TABLE_USER);
        db.execSQL("DROP TABLE IF EXISTS " + subject.TABLE_SUBJECT);
        onCreate(db);
    }

    //insert User
    public boolean insertUser(String uid, String email, String pass, String cpass) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(user.USER_ID, uid);
        cv.put(user.USER_EMAIL, email);
        cv.put(user.USER_PASS, pass);
        cv.put(user.USER_CPASS, cpass);
        long user_id =  db.insert(user.TABLE_USER, null, cv);

        if (user_id == -1){
            return false;
        }else
            return true;
    }

    //get User
    public Cursor getUser(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ user.USER_ID + ", " + user.USER_PASS + " FROM " + user.TABLE_USER;

        Cursor c = db.rawQuery(selectQuery, null);

        return c;
    }

    //insert Subjects
    public boolean insertSubjects(String uid, String sname, String sresults, String shours) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(subject.SUBUSER_ID, uid);
        cv.put(subject.SUBJECT_NAME, sname);
        cv.put(subject.SUBJECT_RESULTS, sresults);
        cv.put(subject.SUBJECT_HOURS, shours);
        long sub_id =  db.insert(subject.TABLE_SUBJECT, null, cv);

        if (sub_id == -1){
            return false;
        }else
            return true;
    }

    public Cursor getSubjects(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ subject.SUBUSER_ID +
                            ", " + subject.SUBJECT_NAME +
                            ", " + subject.SUBJECT_RESULTS +
                            ", " + subject.SUBJECT_HOURS +
                            " FROM " + subject.TABLE_SUBJECT +
                            " WHERE " + subject.SUBUSER_ID +
                            " = " + subject.USER_ID;

        Cursor c = db.rawQuery(selectQuery, null);
        return c;
    }
}
 public class user {
    public static final String USER_ID = "etID";
    public static final String USER_EMAIL = "etEmail";
    public static final String USER_PASS = "etPassword";
    public static final String USER_CPASS = "etCPassword";
    public static final String TABLE_USER = "user";
}
public class addSubjects extends AppCompatActivity {

    EditText etUID, etSubjects, etResults, etHours;
    DatabaseHelper databaseHelper;

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

        etUID = (EditText)findViewById(R.id.etUID);
        etSubjects = (EditText)findViewById(R.id.etSubjects);
        etResults = (EditText)findViewById(R.id.etResults);
        etHours = (EditText)findViewById(R.id.etHours);

        databaseHelper = new DatabaseHelper(this);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_add_subjects, menu);
        return true;
    }

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

       if(id == android.R.id.home){
           Intent i = new Intent(this, subjects.class);
           startActivity(i);
           finish();
       }

        //noinspection SimplifiableIfStatement
       if (id == R.id.action_home) {
           Intent i = new Intent(this, Menus.class);
           startActivity(i);
           finish();
       }
       return super.onOptionsItemSelected(item);
    }

    public void SaveInfo(View view){
        String userid = etUID.getText().toString();
        String subjects = etSubjects.getText().toString();
        String results = etResults.getText().toString();
        String hours = etHours.getText().toString();

        if(userid.equals("") || subjects.equals("") || results.equals("") || hours.equals("")){
            Toast.makeText(addSubjects.this, "Please key in all the information", Toast.LENGTH_SHORT).show();
        }
        else if((!results.equals("A")) && (!results.equals("B")) && (!results.equals("C")) && (!results.equals("D")) && (!results.equals("F"))){
            Toast.makeText(getBaseContext(), "Please key in valid results!", Toast.LENGTH_SHORT).show();
        }
        else if((!hours.equals("One")) && (!hours.equals("Two")) && (!hours.equals("Three")) && (!hours.equals("Four"))){
            Toast.makeText(getBaseContext(), "Please key in valid hours!", Toast.LENGTH_SHORT).show();
        }
        else{
            boolean isInserted = databaseHelper.insertSubjects(userid, subjects, results, hours);
            if(isInserted = true){
                Toast.makeText(addSubjects.this, "Added Successfully!!!", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, subjects.class);
                startActivity(i);
                finish();
            }else{
                Toast.makeText(addSubjects.this, "Unsuccessfully added!!!", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
package com.smartexamorganizer.ListData;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.smartexamorganizer.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Acer on 12/18/2015.
 */
public class ListDataAdapter extends ArrayAdapter {
    List list = new ArrayList();
    public ListDataAdapter(Context context, int resource) {
        super(context, resource);
    }

    static class LayoutHandler{
        TextView SUB_NAME, SUB_RESULTS, SUB_HOURS;
    }
    @Override
    public void add(Object object) {
        super.add(object);
        list.add(object);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        LayoutHandler layoutHandler;
        if(row == null){
            LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = layoutInflater.inflate(R.layout.display_subjects_row, parent, false);
            layoutHandler = new LayoutHandler();
            layoutHandler.SUB_NAME = (TextView)row.findViewById(R.id.tvSub_Name);
            layoutHandler.SUB_RESULTS = (TextView)row.findViewById(R.id.tvSub_Results);
            layoutHandler.SUB_HOURS = (TextView)row.findViewById(R.id.tvSub_Hours);
            row.setTag(layoutHandler);
        }
        else{
            layoutHandler = (LayoutHandler)row.getTag();
        }
        SubjectProvider subjectProvider = (SubjectProvider) this.getItem(position);
        layoutHandler.SUB_NAME.setText(subjectProvider.getSub_name());
        layoutHandler.SUB_RESULTS.setText(subjectProvider.getSub_results());
        layoutHandler.SUB_HOURS.setText(subjectProvider.getSub_hours());

        return row;
    }
}
public class SubjectProvider {
    private String sub_name;
    private String sub_results;
    private String sub_hours;

    public SubjectProvider(String sub_name, String sub_results, String sub_hours){
        this.sub_name = sub_name;
        this.sub_results = sub_results;
        this.sub_hours = sub_hours;
    }

    public String getSub_hours() {
        return sub_hours;
    }

    public void setSub_hours(String sub_hours) {
        this.sub_hours = sub_hours;
    }

    public String getSub_name() {
        return sub_name;
    }

    public void setSub_name(String sub_name) {
        this.sub_name = sub_name;
    }

    public String getSub_results() {
        return sub_results;
    }

    public void setSub_results(String sub_results) {
        this.sub_results = sub_results;
    }
}
subject.java
ListView

ListDataAdapter.java

 public class DatabaseHelper extends SQLiteOpenHelper {
    SQLiteDatabase db;
    public static final String DATABASE_NAME = "myexam.db";
    public static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context,DATABASE_NAME, null, DATABASE_VERSION);
        Log.d("Database operations", "Database successfully created!");
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_USER = "CREATE TABLE " +
                user.TABLE_USER + "(" +
                user.USER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                user.USER_EMAIL + " VARCHAR NOT NULL," +
                user.USER_PASS + " VARCHAR NOT NULL," +
                user.USER_CPASS + " VARCHAR NOT NULL);";

        String CREATE_SUBJECT = "CREATE TABLE " +
                subject.TABLE_SUBJECT + "(" +
                subject.USER_ID + " INTEGER," +
                subject.SUBUSER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                subject.SUBJECT_NAME + " TEXT NOT NULL," +
                subject.SUBJECT_RESULTS + " TEXT NOT NULL," +
                subject.SUBJECT_HOURS + " TEXT NOT NULL);";

        db.execSQL(CREATE_USER);
        db.execSQL(CREATE_SUBJECT);
        Log.d("Database operations", "Table created!");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + user.TABLE_USER);
        db.execSQL("DROP TABLE IF EXISTS " + subject.TABLE_SUBJECT);
        onCreate(db);
    }

    //insert User
    public boolean insertUser(String uid, String email, String pass, String cpass) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(user.USER_ID, uid);
        cv.put(user.USER_EMAIL, email);
        cv.put(user.USER_PASS, pass);
        cv.put(user.USER_CPASS, cpass);
        long user_id =  db.insert(user.TABLE_USER, null, cv);

        if (user_id == -1){
            return false;
        }else
            return true;
    }

    //get User
    public Cursor getUser(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ user.USER_ID + ", " + user.USER_PASS + " FROM " + user.TABLE_USER;

        Cursor c = db.rawQuery(selectQuery, null);

        return c;
    }

    //insert Subjects
    public boolean insertSubjects(String uid, String sname, String sresults, String shours) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(subject.SUBUSER_ID, uid);
        cv.put(subject.SUBJECT_NAME, sname);
        cv.put(subject.SUBJECT_RESULTS, sresults);
        cv.put(subject.SUBJECT_HOURS, shours);
        long sub_id =  db.insert(subject.TABLE_SUBJECT, null, cv);

        if (sub_id == -1){
            return false;
        }else
            return true;
    }

    public Cursor getSubjects(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ subject.SUBUSER_ID +
                            ", " + subject.SUBJECT_NAME +
                            ", " + subject.SUBJECT_RESULTS +
                            ", " + subject.SUBJECT_HOURS +
                            " FROM " + subject.TABLE_SUBJECT +
                            " WHERE " + subject.SUBUSER_ID +
                            " = " + subject.USER_ID;

        Cursor c = db.rawQuery(selectQuery, null);
        return c;
    }
}
 public class user {
    public static final String USER_ID = "etID";
    public static final String USER_EMAIL = "etEmail";
    public static final String USER_PASS = "etPassword";
    public static final String USER_CPASS = "etCPassword";
    public static final String TABLE_USER = "user";
}
public class addSubjects extends AppCompatActivity {

    EditText etUID, etSubjects, etResults, etHours;
    DatabaseHelper databaseHelper;

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

        etUID = (EditText)findViewById(R.id.etUID);
        etSubjects = (EditText)findViewById(R.id.etSubjects);
        etResults = (EditText)findViewById(R.id.etResults);
        etHours = (EditText)findViewById(R.id.etHours);

        databaseHelper = new DatabaseHelper(this);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_add_subjects, menu);
        return true;
    }

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

       if(id == android.R.id.home){
           Intent i = new Intent(this, subjects.class);
           startActivity(i);
           finish();
       }

        //noinspection SimplifiableIfStatement
       if (id == R.id.action_home) {
           Intent i = new Intent(this, Menus.class);
           startActivity(i);
           finish();
       }
       return super.onOptionsItemSelected(item);
    }

    public void SaveInfo(View view){
        String userid = etUID.getText().toString();
        String subjects = etSubjects.getText().toString();
        String results = etResults.getText().toString();
        String hours = etHours.getText().toString();

        if(userid.equals("") || subjects.equals("") || results.equals("") || hours.equals("")){
            Toast.makeText(addSubjects.this, "Please key in all the information", Toast.LENGTH_SHORT).show();
        }
        else if((!results.equals("A")) && (!results.equals("B")) && (!results.equals("C")) && (!results.equals("D")) && (!results.equals("F"))){
            Toast.makeText(getBaseContext(), "Please key in valid results!", Toast.LENGTH_SHORT).show();
        }
        else if((!hours.equals("One")) && (!hours.equals("Two")) && (!hours.equals("Three")) && (!hours.equals("Four"))){
            Toast.makeText(getBaseContext(), "Please key in valid hours!", Toast.LENGTH_SHORT).show();
        }
        else{
            boolean isInserted = databaseHelper.insertSubjects(userid, subjects, results, hours);
            if(isInserted = true){
                Toast.makeText(addSubjects.this, "Added Successfully!!!", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, subjects.class);
                startActivity(i);
                finish();
            }else{
                Toast.makeText(addSubjects.this, "Unsuccessfully added!!!", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
package com.smartexamorganizer.ListData;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.smartexamorganizer.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Acer on 12/18/2015.
 */
public class ListDataAdapter extends ArrayAdapter {
    List list = new ArrayList();
    public ListDataAdapter(Context context, int resource) {
        super(context, resource);
    }

    static class LayoutHandler{
        TextView SUB_NAME, SUB_RESULTS, SUB_HOURS;
    }
    @Override
    public void add(Object object) {
        super.add(object);
        list.add(object);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        LayoutHandler layoutHandler;
        if(row == null){
            LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = layoutInflater.inflate(R.layout.display_subjects_row, parent, false);
            layoutHandler = new LayoutHandler();
            layoutHandler.SUB_NAME = (TextView)row.findViewById(R.id.tvSub_Name);
            layoutHandler.SUB_RESULTS = (TextView)row.findViewById(R.id.tvSub_Results);
            layoutHandler.SUB_HOURS = (TextView)row.findViewById(R.id.tvSub_Hours);
            row.setTag(layoutHandler);
        }
        else{
            layoutHandler = (LayoutHandler)row.getTag();
        }
        SubjectProvider subjectProvider = (SubjectProvider) this.getItem(position);
        layoutHandler.SUB_NAME.setText(subjectProvider.getSub_name());
        layoutHandler.SUB_RESULTS.setText(subjectProvider.getSub_results());
        layoutHandler.SUB_HOURS.setText(subjectProvider.getSub_hours());

        return row;
    }
}
public class SubjectProvider {
    private String sub_name;
    private String sub_results;
    private String sub_hours;

    public SubjectProvider(String sub_name, String sub_results, String sub_hours){
        this.sub_name = sub_name;
        this.sub_results = sub_results;
        this.sub_hours = sub_hours;
    }

    public String getSub_hours() {
        return sub_hours;
    }

    public void setSub_hours(String sub_hours) {
        this.sub_hours = sub_hours;
    }

    public String getSub_name() {
        return sub_name;
    }

    public void setSub_name(String sub_name) {
        this.sub_name = sub_name;
    }

    public String getSub_results() {
        return sub_results;
    }

    public void setSub_results(String sub_results) {
        this.sub_results = sub_results;
    }
}
SubjectProvider.java

 public class DatabaseHelper extends SQLiteOpenHelper {
    SQLiteDatabase db;
    public static final String DATABASE_NAME = "myexam.db";
    public static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context,DATABASE_NAME, null, DATABASE_VERSION);
        Log.d("Database operations", "Database successfully created!");
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_USER = "CREATE TABLE " +
                user.TABLE_USER + "(" +
                user.USER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                user.USER_EMAIL + " VARCHAR NOT NULL," +
                user.USER_PASS + " VARCHAR NOT NULL," +
                user.USER_CPASS + " VARCHAR NOT NULL);";

        String CREATE_SUBJECT = "CREATE TABLE " +
                subject.TABLE_SUBJECT + "(" +
                subject.USER_ID + " INTEGER," +
                subject.SUBUSER_ID + " INTEGER PRIMARY KEY NOT NULL," +
                subject.SUBJECT_NAME + " TEXT NOT NULL," +
                subject.SUBJECT_RESULTS + " TEXT NOT NULL," +
                subject.SUBJECT_HOURS + " TEXT NOT NULL);";

        db.execSQL(CREATE_USER);
        db.execSQL(CREATE_SUBJECT);
        Log.d("Database operations", "Table created!");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + user.TABLE_USER);
        db.execSQL("DROP TABLE IF EXISTS " + subject.TABLE_SUBJECT);
        onCreate(db);
    }

    //insert User
    public boolean insertUser(String uid, String email, String pass, String cpass) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(user.USER_ID, uid);
        cv.put(user.USER_EMAIL, email);
        cv.put(user.USER_PASS, pass);
        cv.put(user.USER_CPASS, cpass);
        long user_id =  db.insert(user.TABLE_USER, null, cv);

        if (user_id == -1){
            return false;
        }else
            return true;
    }

    //get User
    public Cursor getUser(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ user.USER_ID + ", " + user.USER_PASS + " FROM " + user.TABLE_USER;

        Cursor c = db.rawQuery(selectQuery, null);

        return c;
    }

    //insert Subjects
    public boolean insertSubjects(String uid, String sname, String sresults, String shours) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues cv = new ContentValues();

        cv.put(subject.SUBUSER_ID, uid);
        cv.put(subject.SUBJECT_NAME, sname);
        cv.put(subject.SUBJECT_RESULTS, sresults);
        cv.put(subject.SUBJECT_HOURS, shours);
        long sub_id =  db.insert(subject.TABLE_SUBJECT, null, cv);

        if (sub_id == -1){
            return false;
        }else
            return true;
    }

    public Cursor getSubjects(){
        SQLiteDatabase db = this.getReadableDatabase();
        String selectQuery = "SELECT "+ subject.SUBUSER_ID +
                            ", " + subject.SUBJECT_NAME +
                            ", " + subject.SUBJECT_RESULTS +
                            ", " + subject.SUBJECT_HOURS +
                            " FROM " + subject.TABLE_SUBJECT +
                            " WHERE " + subject.SUBUSER_ID +
                            " = " + subject.USER_ID;

        Cursor c = db.rawQuery(selectQuery, null);
        return c;
    }
}
 public class user {
    public static final String USER_ID = "etID";
    public static final String USER_EMAIL = "etEmail";
    public static final String USER_PASS = "etPassword";
    public static final String USER_CPASS = "etCPassword";
    public static final String TABLE_USER = "user";
}
public class addSubjects extends AppCompatActivity {

    EditText etUID, etSubjects, etResults, etHours;
    DatabaseHelper databaseHelper;

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

        etUID = (EditText)findViewById(R.id.etUID);
        etSubjects = (EditText)findViewById(R.id.etSubjects);
        etResults = (EditText)findViewById(R.id.etResults);
        etHours = (EditText)findViewById(R.id.etHours);

        databaseHelper = new DatabaseHelper(this);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_add_subjects, menu);
        return true;
    }

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

       if(id == android.R.id.home){
           Intent i = new Intent(this, subjects.class);
           startActivity(i);
           finish();
       }

        //noinspection SimplifiableIfStatement
       if (id == R.id.action_home) {
           Intent i = new Intent(this, Menus.class);
           startActivity(i);
           finish();
       }
       return super.onOptionsItemSelected(item);
    }

    public void SaveInfo(View view){
        String userid = etUID.getText().toString();
        String subjects = etSubjects.getText().toString();
        String results = etResults.getText().toString();
        String hours = etHours.getText().toString();

        if(userid.equals("") || subjects.equals("") || results.equals("") || hours.equals("")){
            Toast.makeText(addSubjects.this, "Please key in all the information", Toast.LENGTH_SHORT).show();
        }
        else if((!results.equals("A")) && (!results.equals("B")) && (!results.equals("C")) && (!results.equals("D")) && (!results.equals("F"))){
            Toast.makeText(getBaseContext(), "Please key in valid results!", Toast.LENGTH_SHORT).show();
        }
        else if((!hours.equals("One")) && (!hours.equals("Two")) && (!hours.equals("Three")) && (!hours.equals("Four"))){
            Toast.makeText(getBaseContext(), "Please key in valid hours!", Toast.LENGTH_SHORT).show();
        }
        else{
            boolean isInserted = databaseHelper.insertSubjects(userid, subjects, results, hours);
            if(isInserted = true){
                Toast.makeText(addSubjects.this, "Added Successfully!!!", Toast.LENGTH_SHORT).show();
                Intent i = new Intent(this, subjects.class);
                startActivity(i);
                finish();
            }else{
                Toast.makeText(addSubjects.this, "Unsuccessfully added!!!", Toast.LENGTH_SHORT).show();
            }
        }
    }
}
package com.smartexamorganizer.ListData;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.smartexamorganizer.R;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Acer on 12/18/2015.
 */
public class ListDataAdapter extends ArrayAdapter {
    List list = new ArrayList();
    public ListDataAdapter(Context context, int resource) {
        super(context, resource);
    }

    static class LayoutHandler{
        TextView SUB_NAME, SUB_RESULTS, SUB_HOURS;
    }
    @Override
    public void add(Object object) {
        super.add(object);
        list.add(object);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View row = convertView;
        LayoutHandler layoutHandler;
        if(row == null){
            LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = layoutInflater.inflate(R.layout.display_subjects_row, parent, false);
            layoutHandler = new LayoutHandler();
            layoutHandler.SUB_NAME = (TextView)row.findViewById(R.id.tvSub_Name);
            layoutHandler.SUB_RESULTS = (TextView)row.findViewById(R.id.tvSub_Results);
            layoutHandler.SUB_HOURS = (TextView)row.findViewById(R.id.tvSub_Hours);
            row.setTag(layoutHandler);
        }
        else{
            layoutHandler = (LayoutHandler)row.getTag();
        }
        SubjectProvider subjectProvider = (SubjectProvider) this.getItem(position);
        layoutHandler.SUB_NAME.setText(subjectProvider.getSub_name());
        layoutHandler.SUB_RESULTS.setText(subjectProvider.getSub_results());
        layoutHandler.SUB_HOURS.setText(subjectProvider.getSub_hours());

        return row;
    }
}
public class SubjectProvider {
    private String sub_name;
    private String sub_results;
    private String sub_hours;

    public SubjectProvider(String sub_name, String sub_results, String sub_hours){
        this.sub_name = sub_name;
        this.sub_results = sub_results;
        this.sub_hours = sub_hours;
    }

    public String getSub_hours() {
        return sub_hours;
    }

    public void setSub_hours(String sub_hours) {
        this.sub_hours = sub_hours;
    }

    public String getSub_name() {
        return sub_name;
    }

    public void setSub_name(String sub_name) {
        this.sub_name = sub_name;
    }

    public String getSub_results() {
        return sub_results;
    }

    public void setSub_results(String sub_results) {
        this.sub_results = sub_results;
    }
}
错误:

Error:(40, 45) error: no suitable constructor found for ArrayAdapter(subjects,int,ArrayList<SubjectProvider>)
constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable
(argument mismatch; ArrayList<SubjectProvider> cannot be converted to int)
constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable
(argument mismatch; ArrayList<SubjectProvider> cannot be converted to String[])
constructor ArrayAdapter.ArrayAdapter(Context,int,List<String>) is not applicable
(argument mismatch; ArrayList<SubjectProvider> cannot be converted to List<String>)
错误:(40,45)错误:找不到适合ArrayAdapter的构造函数(主题、int、ArrayList)
构造函数ArrayAdapter.ArrayAdapter(上下文,int,int)不适用
(参数不匹配;ArrayList无法转换为int)
构造函数ArrayAdapter.ArrayAdapter(上下文、int、字符串[])不适用
(参数不匹配;ArrayList无法转换为字符串[])
构造函数ArrayAdapter.ArrayAdapter(上下文、int、列表)不适用
(参数不匹配;ArrayList无法转换为List)

VARCHAR
VARCAHR
: 更改:

并将
数据库版本从1增加到2:

public static final int DATABASE_VERSION = 2;
试试这个:

// getSubjects() will now return a List of SubjectProviders
// as you can see below
public ArrayList<SubjectProvider> getSubjects(){ 
    // obtain the database
    SQLiteDatabase db = this.getReadableDatabase();
    // create the query that should return name results and hours
    // for each subject that has the subuser_id equal to the user_id
    String selectQuery = "SELECT " + subject.SUBJECT_NAME +
                        ", " + subject.SUBJECT_RESULTS +
                        ", " + subject.SUBJECT_HOURS +
                        " FROM " + subject.TABLE_SUBJECT +
                        " WHERE " + subject.SUBUSER_ID +
                        " = " + subject.USER_ID;

    // create the arraylist in which we will late store all the subjectproviders
    // this arraylist will be returned so you can use it in your subjects class
    ArrayList<SubjectProvider> subjectList = new  ArrayList<SubjectProvider>()
    // execute the select-query
    Cursor c = db.rawQuery(selectQuery, null);
    // if the cursor is not empty aka some at least one row was found
    if (c.moveToFirst()) {
        // loop through all the results
        do {
            System.out.println("Results were found!");
            // get the values from the cursor
            String sub_name, sub_results, sub_hours;
            sub_name = cursor.getString(0);
            sub_results = cursor.getString(1);
            sub_hours = cursor.getString(2);

            // create a new subjectprovider Object to store the values in it
            SubjectProvider subjectProvider = new SubjectProvider(sub_name, sub_results, sub_hours);

            System.out.println("Subject: "+sub_name+" got" +sub_results+" in "+sub_hours);
            // add it to the arraylist
            subjectList.add(subjectProvider);
        // stop if there are no more results
        } while (c.moveToNext());
    }
    // return the list to your subjects class
    return subjectList;
}

在oncreate方法中,您拼错了varchar。@Nyxar oops!!!谢谢你,顺便说一句:你用好的用户id在数据库中插入用户了吗?@Dimitri我添加了1111 thn第二个目标是2222我只是尝试使用不同的id,这很简单,第一个与数据库版本有什么不同?要用它的表重新创建数据库,必须增加版本。见我的编辑谢谢!我变了!无论如何,你知道如何根据用户id列出所有数据吗?我在DatabaseHelper中的getSubjects上做错了吗?我只能插入一个值并检索一个值,没有任何错误,但当我插入另一个值时,它会自动关闭我的app>E/SQLiteLog﹕ (1555)在14英寸处中止[插入受试者(etResults,etours,etUID,etSubjects)值(?,?,?)]:唯一约束失败:subjects.etUID 12-18 21:28:13.021 22330-22330/com.smartexamorganizer E/SQLiteDatabase﹕ 插入etResults=C etHours=One etUID=1111 etSubjects=English android.database.sqlite.SQLiteConstraintException:唯一约束失败:subjects.etUID(代码1555)第一次添加uuid后,uuid已存在。第二个必须失败,因为uuid在android端没有更改,而且是我更改的主要字段!谢谢现在尝试用相同的代码解决另一个问题><插入主题后数据没有显示出来~尝试重新创建数据库。我认为您仍然能够创建subjects表,尽管用户给出了错误,现在您尝试插入已经存在的数据。这就是我用另一个数据库名发布代码的原因,它应该可以工作。不要忘记删除另一个。或者删除subjects表,然后再次尝试插入值,也应该插入worksubjects数据,但不能在listView中查看。。。我需要发布我的listView吗?哦,这样你就不会得到上面的错误了。好的,好的,是的,张贴你如何尝试插入值