DatabaseHandler () в DatabaseHandler не может быть применен к - PullRequest
0 голосов
/ 20 сентября 2018

Я хотел создать sqlitedatabase и хотел сохранить мои данные в.

SavetoDataAdapter.class

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

import com.andisofttechnology.myapplication.DatabaseHandler;
import com.andisofttechnology.myapplication.R;

import java.util.List;

/**
 * Created by Alfraganus on 9/20/2018.
 */

public class SavedDataAdapter extends BaseAdapter {
LayoutInflater layoutInflater;
List<Student>studentList;
Context context;
DatabaseHandler databaseHandler;

public SavedDataAdapter(Context context,List<Student>list){
    this.studentList = list;
    this.context = context;
    layoutInflater = (LayoutInflater)this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    databaseHandler = new DatabaseHandler(this.context);
}

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

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

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
       if(convertView == null){
           convertView = layoutInflater.inflate(R.layout.activity_attendance, null);
       }


    return convertView;
    }

DatabaseHandler.class

import android.database.sqlite.SQLiteOpenHelper;

import com.andisofttechnology.myapplication.adapter.Student;

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


public class  DatabaseHandler extends SQLiteOpenHelper{

    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "attendace";
    public static final String TABLE_STUDENT = "student";
    public static final  String STUDENT_ID = "_id";
    public static final  String STUDENT_NAME = "name";
    public static final  String STUDENT_SURNAME = "surname";
    public static final  String STUDENT_CONTACT = "contact";
    public static final String  STUDENT_ROLLNUM = "rollNum";


    private final Context mContext;
    SQLiteDatabase database;


    public DatabaseHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, Context mContext) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        this.mContext = mContext;
    }

    @Override
    public void onCreate(SQLiteDatabase database) {
database.execSQL("CREATE TABLE " + TABLE_STUDENT + "(" + STUDENT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + STUDENT_NAME + " TEXT, " + STUDENT_SURNAME + " TEXT, " + STUDENT_CONTACT + " TEXT, " + STUDENT_ROLLNUM + " TEXT" + ")");
    }

    @Override
    public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
        database.execSQL("DROP TABLE IF EXISTS " + TABLE_STUDENT);
        onCreate(database);

    }

    public long StudentKiritish(Student studentList)
    {
        SQLiteDatabase database = this.getWritableDatabase();
        ContentValues cv = new ContentValues();

        cv.put(STUDENT_NAME,studentList.getName());
        cv.put(STUDENT_SURNAME,studentList.getSurname());
        cv.put(STUDENT_CONTACT,studentList.getContact());
        cv.put(STUDENT_ROLLNUM,studentList.getRollNum());

        Long insert = database.insert(TABLE_STUDENT, null, cv);
        database.close();
        return insert;

    }
public List<Student>studentLists() {
        List<Student> list = new ArrayList<>();
        SQLiteDatabase database = this.getReadableDatabase();
        String s = "select * from " + TABLE_STUDENT;
    Cursor cursor = database.rawQuery(s,null);

    if(cursor.moveToFirst()){
        do {
            list.add(new Student(cursor.getInt(cursor.getColumnIndex(STUDENT_ID)),
                    cursor.getString(cursor.getColumnIndex(STUDENT_NAME)),
                    cursor.getString(cursor.getColumnIndex(STUDENT_SURNAME)),
                    cursor.getString(cursor.getColumnIndex(STUDENT_ROLLNUM)),
                    cursor.getString(cursor.getColumnIndex(STUDENT_CONTACT))));

                           }while (cursor.moveToNext());

    }database.close();
    return list;
}
}

В SaveDataAdapter.classесть красная линия под: databaseHandler = new databaseHandler (this.context) Говорит, что контекст не может быть применен к

Пожалуйста, кто-нибудь скажет мне, в чем проблема ...................................................................................

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Решение:

Вместо этого:

public DatabaseHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, Context mContext) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    this.mContext = mContext;
}

Напишите:

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    this.mContext = context;
}

в вашем DatabaseHandler классе.

Вот и все.

Надеюсь, это поможет.

0 голосов
/ 20 сентября 2018

Конструктор - это блок кода, который инициализирует вновь созданный объект.Конструктор напоминает метод экземпляра в Java, но это не метод, так как он не имеет возвращаемого типа.

Не

 public DatabaseHandler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, Context mContext) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        this.mContext = mContext;
    }

Do

public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
         this.mContext = mContext;
    }

Тогда будет работать следующий раздел.

databaseHandler = new DatabaseHandler(context);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...