Tejas Dalvi
Tejas Dalvi

Reputation: 21

How to implement searchview in recyclerview which based on SQLite? - Android

I am Building Android application which stores the patient details in SQLite database and shows this data in recyclerview, Now i want to add searchview for my recyclerview, plz help me to implement this one.

I am working on this project with the help of this youtube tutorial Series - https://youtube.com/playlist?list=PLSrm9z4zp4mGK0g_0_jxYGgg3os9tqRUQ

Here is my MainActivity Class


import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

   RecyclerView recyclerView;
   FloatingActionButton add_button;

   MyDatabaseHelper myDB;
   ArrayList<String> _id, name, disease, medicine, mobile, address, day, month, year;
   CustomAdapter customAdapter;

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

       recyclerView = findViewById(R.id.recyclerView);
       add_button = findViewById(R.id.add_button);
       add_button.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent = new Intent(MainActivity.this, AddActivity.class);
               startActivity(intent);
           }
       });

       myDB = new MyDatabaseHelper(MainActivity.this);
       _id = new ArrayList<>();
       name = new ArrayList<>();
       disease = new ArrayList<>();
       medicine = new ArrayList<>();
       mobile = new ArrayList<>();
       address = new ArrayList<>();
       day = new ArrayList<>();
       month = new ArrayList<>();
       year = new ArrayList<>();

       storeDataInArrays();

       customAdapter = new CustomAdapter(MainActivity.this, _id, name, disease, medicine, mobile, address, day, month, year);
       recyclerView.setAdapter(customAdapter);
       recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
   }

   void storeDataInArrays(){
       Cursor cursor = myDB.readAllData();
       if(cursor.getCount() == 0){
           Toast.makeText(this, "No data.", Toast.LENGTH_SHORT).show();
       }else{
           while (cursor.moveToNext()){
               _id.add(cursor.getString(0));
               name.add(cursor.getString(1));
               disease.add(cursor.getString(2));
               medicine.add(cursor.getString(3));
               mobile.add(String.valueOf(cursor.getLong(4)));
               address.add(cursor.getString(5));
               day.add(cursor.getString(6));
               month.add(cursor.getString(7));
               year.add(cursor.getString(8));
           }
       }
   }
}

here is my AddActivity Class

package com.example.myclinic;

import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class AddActivity extends AppCompatActivity {

    EditText name_input, disease_input, medicine_input, mobile_input, address_input, day_input, month_input, year_input;
    Button add_button;

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

        name_input = findViewById(R.id.name_input);
        disease_input = findViewById(R.id.disease_input);
        medicine_input = findViewById(R.id.medicine_input);
        mobile_input = findViewById(R.id.mobile_input);
        address_input = findViewById(R.id.address_input);
        day_input = findViewById(R.id.day_input);
        month_input = findViewById(R.id.month_input);
        year_input = findViewById(R.id.year_input);

        add_button = findViewById(R.id.add_button);

        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        String strDate = formatter.format(date);
        day_input.setText(strDate.substring(0,2));
        month_input.setText(strDate.substring(3,5));
        year_input.setText(strDate.substring(6,10));

        add_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (TextUtils.isEmpty(name_input.getText().toString()) || TextUtils.isEmpty(disease_input.getText().toString())) {
                    name_input.setHint("Patient Name* (Mandatory)");
                    disease_input.setHint("Disease* (Mandatory)");
                    Toast.makeText(AddActivity.this,
                            "Failed!", Toast.LENGTH_SHORT).show();
                } else {
                    try {
                        MyDatabaseHelper myDB = new MyDatabaseHelper(AddActivity.this);
                        myDB.addPatient(name_input.getText().toString().trim(),
                                disease_input.getText().toString().trim(),
                                medicine_input.getText().toString().trim(),
                                Long.parseLong("0" + mobile_input.getText().toString().trim()),
                                address_input.getText().toString().trim(),
                                Integer.parseInt(day_input.getText().toString().trim()),
                                Integer.parseInt(month_input.getText().toString().trim()),
                                Integer.parseInt(year_input.getText().toString().trim()));
                    } catch (Exception e) {
                        Toast.makeText(AddActivity.this, "Failed!", Toast.LENGTH_SHORT).show();
                    }
                }
            }
        });

    }
}

here is MyDatabaseHelper Class

package com.example.myclinic;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.google.android.material.shape.ShapeAppearanceModel;

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private Context context;
    private static final String DATABASE_NAME = "PatientList.db";
    private static final int DATABASE_VERSION = 1;

    private static final String TABLE_NAME = "patients";
    private static final String COLUMN_ID = "_id";
    private static final String COLUMN_NAME = "name";
    private static final String COLUMN_DISEASE = "disease";
    private static final String COLUMN_MEDICINES = "medicines";
    private static final String COLUMN_MOBILE = "mobile";
    private static final String COLUMN_ADDRESS = "address";
    private static final String COLUMN_DAY = "day";
    private static final String COLUMN_MONTH = "month";
    private static final String COLUMN_YEAR = "year";

    public MyDatabaseHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        this.context = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query =
                "CREATE TABLE " + TABLE_NAME +
                        " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                        COLUMN_NAME + " TEXT, " +
                        COLUMN_DISEASE + " TEXT, " +
                        COLUMN_MEDICINES + " TEXT, " +
                        COLUMN_MOBILE + " INTEGER, " +
                        COLUMN_ADDRESS + " TEXT, " +
                        COLUMN_DAY + " INTEGER, " +
                        COLUMN_MONTH + " INTEGER, " +
                        COLUMN_YEAR + " INTEGER);";
        db.execSQL(query);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }

   void addPatient(String pname, String pdisease, String pmedicines, Long pmobile, String paddress, int pday, int pmonth, int pyear){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();

        cv.put(COLUMN_NAME, pname);
        cv.put(COLUMN_DISEASE, pdisease);
        cv.put(COLUMN_MEDICINES, pmedicines);
        cv.put(COLUMN_MOBILE, pmobile.longValue());
        cv.put(COLUMN_ADDRESS, paddress);
       cv.put(COLUMN_DAY, pday);
       cv.put(COLUMN_MONTH, pmonth);
       cv.put(COLUMN_YEAR, pyear);
        long result = db.insert(TABLE_NAME, null, cv);
        if(result == -1) {
            Toast.makeText(context, "Failed!", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(context, "Added Successfully...", Toast.LENGTH_SHORT).show();
        }
    }

    Cursor readAllData(){
        String query = "SELECT * FROM " + TABLE_NAME;
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = null;
        if(db != null) cursor = db.rawQuery(query, null);
        return cursor;
    }

}


here is CustomAdapter Class

package com.example.myclinic;

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

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.security.PrivateKey;
import java.util.ArrayList;

public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {

    private Context context;
    private ArrayList _id, name, disease, medicine, mobile, address, day, month, year;

    CustomAdapter(Context context, ArrayList _id, ArrayList name, ArrayList disease,
                  ArrayList medicine, ArrayList mobile, ArrayList address, ArrayList day, ArrayList month, ArrayList year){
        this.context = context;
        this._id = _id;
        this.name = name;
        this.disease = disease;
        this.medicine = medicine;
        this.mobile = mobile;
        this.address = address;
        this.day = day;
        this.month = month;
        this.year = year;

    }
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.my_row, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.id_txt.setText(String.valueOf(_id.get(position)));
        holder.name_txt.setText(String.valueOf(name.get(position)));
        holder.disease_txt.setText(String.valueOf(disease.get(position)));
        holder.medicine_txt.setText(String.valueOf(medicine.get(position)));
        holder.mobile_txt.setText(String.valueOf(mobile.get(position)));
        holder.address_txt.setText(String.valueOf(address.get(position)));
        holder.day_txt.setText(String.valueOf(day.get(position)));
        holder.month_txt.setText(String.valueOf(month.get(position)));
        holder.year_txt.setText(String.valueOf(year.get(position)));
    }

    @Override
    public int getItemCount() {
        return _id.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        TextView id_txt, name_txt, disease_txt, medicine_txt, mobile_txt, address_txt, day_txt, month_txt, year_txt;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            id_txt = itemView.findViewById(R.id.id_txt);
            name_txt = itemView.findViewById(R.id.name_txt);
            disease_txt = itemView.findViewById(R.id.disease_txt);
            medicine_txt = itemView.findViewById(R.id.medicine_txt);
            mobile_txt = itemView.findViewById(R.id.mobile_txt);
            address_txt = itemView.findViewById(R.id.address_txt);
            day_txt = itemView.findViewById(R.id.day_txt);
            month_txt = itemView.findViewById(R.id.month_txt);
            year_txt = itemView.findViewById(R.id.year_txt);
        }
    }
}

Upvotes: 0

Views: 1059

Answers (1)

Tejas Dalvi
Tejas Dalvi

Reputation: 21

For Implementing search functionality in this project, as @thinkgruen suggested me that i need to work on single arraylist instead of multiple arraylist thats why i created separate class having all my data and made arraylist of that class, and implemented filter method to that arraylist.

After that i gone throgh this youtube tutorial - https://www.youtube.com/watch?v=CTvzoVtKoJ8

I'm posting changed code here, i made old code as a comment and changed code marked as //U . Beacuse U can clearly see what changes i have made.

at first here is new class - PatientList

package com.example.myclinic;

public class PatientList {

    private int _id;
    private String name;
    private String disease;
    private String medicine;
    private long mobile;
    private String address;
    private int day;
    private int month;
    private int year;
    private String serialid;


    public int getid() {
        return _id;
    }
    public void setid(int _id) {
        this._id = _id;
    }

    public String getname() {
        return name;
    }
    public void setname (String name) {
        this.name = name;
    }

    public String getdisease() {
        return disease;
    }
    public void setdisease (String disease) {
        this.disease = disease;
    }

    public String getmedicine() {
        return medicine;
    }
    public void setmedicine (String medicine) {
        this.medicine = medicine;
    }

    public long getmobile() {
        return mobile;
    }
    public void setmobile (long mobile) {
        this.mobile = mobile;
    }

    public String getaddress() {
        return address;
    }
    public void setaddress (String address) {
        this.address = address;
    }

    public int getday() {
        return day;
    }
    public void setday(int day) {
        this.day = day;
    }

    public int getmonth() {
        return month;
    }
    public void setmonth(int month) {
        this.month = month;
    }

    public int getyear() {
        return year;
    }
    public void setyear(int year) {
        this.year = year;
    }

    public String getserialid() {
        return serialid;
    }
    public void setserialid (String serialid) {
        this.serialid = serialid;
    }

    //constructor
    public PatientList(int _id, String name, String disease, String medicine, long mobile, String address, int day, int month, int year, String serialid){
        this._id = _id;
        this.name = name;
        this.disease = disease;
        this.medicine = medicine;
        this.mobile = mobile;
        this.address = address;
        this.day = day;
        this.month = month;
        this.year = year;
        this.serialid = serialid;
    }

}

After that, in Class - CustomAdapter


package com.example.myclinic;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

//U
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> implements Filterable {

    private Context context;
  //  private ArrayList _id, name, disease, medicine, mobile, address, day, month, year, serialid;
    private  List<PatientList> patientList = new ArrayList<>();      //U
    private List<PatientList> patientListAll = new ArrayList<>();


    CustomAdapter(Context context,/* ArrayList _id, ArrayList name, ArrayList disease,
                  ArrayList medicine, ArrayList mobile, ArrayList address, ArrayList day, ArrayList month, ArrayList year, ArrayList serialid, */
                  ArrayList<PatientList> patientList){
        this.context = context;
      /*
        this._id = _id;
        this.name = name;
        this.disease = disease;
        this.medicine = medicine;
        this.mobile = mobile;
        this.address = address;
        this.day = day;
        this.month = month;
        this.year = year;
        this.serialid = serialid;
        */

        this.patientList = patientList;   //U
        this.patientListAll = new ArrayList<>(patientList);

    }
    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.my_row, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        /*
        holder.id_txt.setText(String.valueOf(_id.get(position)));
        holder.name_txt.setText(String.valueOf(name.get(position)));
        holder.disease_txt.setText(String.valueOf(disease.get(position)));
        holder.medicine_txt.setText(String.valueOf(medicine.get(position)));
        holder.mobile_txt.setText(String.valueOf(mobile.get(position)));
        holder.address_txt.setText(String.valueOf(address.get(position)));
        holder.day_txt.setText(String.valueOf(day.get(position)));
        holder.month_txt.setText(String.valueOf(month.get(position)));
        holder.year_txt.setText(String.valueOf(year.get(position)));
        holder.serialid_txt.setText(String.valueOf(serialid.get(position)));
        */

        PatientList plist =  patientList.get(position);         //U
        holder.id_txt.setText(String.valueOf(plist.getid()));
        holder.name_txt.setText(String.valueOf(plist.getname()));
        holder.disease_txt.setText(String.valueOf(plist.getdisease()));
        holder.medicine_txt.setText(String.valueOf(plist.getmedicine()));
        holder.mobile_txt.setText(String.valueOf(plist.getmobile()));
        holder.address_txt.setText(String.valueOf(plist.getaddress()));
        holder.day_txt.setText(String.valueOf(plist.getday()));
        holder.month_txt.setText(String.valueOf(plist.getmonth()));
        holder.year_txt.setText(String.valueOf(plist.getyear()));
        holder.serialid_txt.setText(String.valueOf(plist.getserialid()));
    }

    @Override
    public int getItemCount() {
        return patientList.size();
    }

    //U
    @Override
    public Filter getFilter() {
        return filter;
    }
//U
    Filter filter = new Filter() {
        @Override
        protected FilterResults performFiltering(CharSequence constaint) {

            List<PatientList> filteredList = new ArrayList<>();

            if (constaint.toString().isEmpty()) {
                filteredList.addAll(patientListAll);
            } else {
                for (PatientList patient : patientListAll) {
                    if (patient.getname().toLowerCase().contains(constaint.toString().toLowerCase())
                            || patient.getserialid().toLowerCase().contains(constaint.toString().toLowerCase())
                            || patient.getaddress().toLowerCase().contains(constaint.toString().toLowerCase())) {
                        filteredList.add(patient);
                    }
                }
            }

            FilterResults filterResults = new FilterResults();
            filterResults.values = filteredList;
            return filterResults;
        }

        @Override
        protected void publishResults(CharSequence constraint, FilterResults filterResults) {
            patientList.clear();
            patientList.addAll((Collection<? extends PatientList>) filterResults.values);
            notifyDataSetChanged();
        }
    };



    public class MyViewHolder extends RecyclerView.ViewHolder {

        TextView id_txt, name_txt, disease_txt, medicine_txt, mobile_txt, address_txt, day_txt, month_txt, year_txt, serialid_txt;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            id_txt = itemView.findViewById(R.id.id_txt);
            name_txt = itemView.findViewById(R.id.name_txt);
            disease_txt = itemView.findViewById(R.id.disease_txt);
            medicine_txt = itemView.findViewById(R.id.medicine_txt);
            mobile_txt = itemView.findViewById(R.id.mobile_txt);
            address_txt = itemView.findViewById(R.id.address_txt);
            day_txt = itemView.findViewById(R.id.day_txt);
            month_txt = itemView.findViewById(R.id.month_txt);
            year_txt = itemView.findViewById(R.id.year_txt);
            serialid_txt = itemView.findViewById(R.id.serialid_txt);
        }
    }
}


Class DatabaseHelper

package com.example.myclinic;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.google.android.material.shape.ShapeAppearanceModel;

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private Context context;
    private static final String DATABASE_NAME = "PatientList.db";
    private static final int DATABASE_VERSION = 1;

    private static final String TABLE_NAME = "patients";
    private static final String COLUMN_ID = "_id";
    private static final String COLUMN_NAME = "name";
    private static final String COLUMN_DISEASE = "disease";
    private static final String COLUMN_MEDICINES = "medicines";
    private static final String COLUMN_MOBILE = "mobile";
    private static final String COLUMN_ADDRESS = "address";
    private static final String COLUMN_DAY = "day";
    private static final String COLUMN_MONTH = "month";
    private static final String COLUMN_YEAR = "year";
    private static final String COLUMN_SERIALID = "serialid";

    public MyDatabaseHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
        this.context = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query =
                "CREATE TABLE " + TABLE_NAME +
                        " (" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                        COLUMN_NAME + " TEXT, " +
                        COLUMN_DISEASE + " TEXT, " +
                        COLUMN_MEDICINES + " TEXT, " +
                        COLUMN_MOBILE + " INTEGER, " +
                        COLUMN_ADDRESS + " TEXT, " +
                        COLUMN_DAY + " INTEGER, " +
                        COLUMN_MONTH + " INTEGER, " +
                        COLUMN_YEAR + " INTEGER, " +
                        COLUMN_SERIALID + " TEXT);";
        db.execSQL(query);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
        onCreate(db);
    }

   void addPatient(String pname, String pdisease, String pmedicines, Long pmobile, String paddress, int pday, int pmonth, int pyear, String pserialid){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();

        cv.put(COLUMN_NAME, pname);
        cv.put(COLUMN_DISEASE, pdisease);
        cv.put(COLUMN_MEDICINES, pmedicines);
        cv.put(COLUMN_MOBILE, pmobile.longValue());
        cv.put(COLUMN_ADDRESS, paddress);
       cv.put(COLUMN_DAY, pday);
       cv.put(COLUMN_MONTH, pmonth);
       cv.put(COLUMN_YEAR, pyear);
       cv.put(COLUMN_SERIALID, pserialid);
        long result = db.insert(TABLE_NAME, null, cv);
        if(result == -1) {
            Toast.makeText(context, "Failed!", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(context, "Added Successfully...", Toast.LENGTH_SHORT).show();
        }
    }

    Cursor readAllData(){
        String query = "SELECT * FROM " + TABLE_NAME;
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = null;
        if(db != null) cursor = db.rawQuery(query, null);
        return cursor;
    }

}

And Final changes in MainActivity.Java

package com.example.myclinic;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import androidx.appcompat.widget.SearchView;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

import com.google.android.material.floatingactionbutton.FloatingActionButton;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    RecyclerView recyclerView;
    FloatingActionButton add_button;

    MyDatabaseHelper myDB;
//    ArrayList<String> _id, name, disease, medicine, mobile, address, day, month, year, serialid;
    ArrayList<PatientList> patientList = new ArrayList<>(); //U
    CustomAdapter customAdapter;

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

        recyclerView = findViewById(R.id.recyclerView);
        add_button = findViewById(R.id.add_button);
        add_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, AddActivity.class);
                startActivity(intent);
            }
        });

        myDB = new MyDatabaseHelper(MainActivity.this);
     /*
        _id = new ArrayList<>();
        name = new ArrayList<>();
        disease = new ArrayList<>();
        medicine = new ArrayList<>();
        mobile = new ArrayList<>();
        address = new ArrayList<>();
        day = new ArrayList<>();
        month = new ArrayList<>();
        year = new ArrayList<>();
        serialid = new ArrayList<>();
         */
        storeDataInArray();

        customAdapter = new CustomAdapter(MainActivity.this, patientList);
        recyclerView.setAdapter(customAdapter); 
        recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
    }

/*
    void storeDataInArrays(){
        Cursor cursor = myDB.readAllData();
        if(cursor.getCount() == 0){
            Toast.makeText(this, "No data.", Toast.LENGTH_SHORT).show();
        }else{
            while (cursor.moveToNext()){
                _id.add(cursor.getString(0));
                name.add(cursor.getString(1));
                disease.add(cursor.getString(2));
                medicine.add(cursor.getString(3));
                mobile.add(String.valueOf(cursor.getLong(4)));
                address.add(cursor.getString(5));
                day.add(cursor.getString(6));
                month.add(cursor.getString(7));
                year.add(cursor.getString(8));
                serialid.add(cursor.getString(9));

            }
        }
    } */

    void storeDataInArray(){           //U
        Cursor cursor = myDB.readAllData();
        if(cursor.getCount() == 0){
            Toast.makeText(this, "No data.", Toast.LENGTH_SHORT).show();
        }else{
            while (cursor.moveToNext()){
               patientList.add(new PatientList(cursor.getInt(0),
                       cursor.getString(1),
                       cursor.getString(2),
                       cursor.getString(3),
                       cursor.getLong(4),
                       cursor.getString(5),
                       cursor.getInt(6),
                       cursor.getInt(7),
                       cursor.getInt(8),
                       cursor.getString(9)));
            }
        }
    }

 @Override        //U
    public boolean onCreateOptionsMenu(Menu menu)
    {
        getMenuInflater().inflate(R.menu.mainmenu, menu);
        MenuItem item = menu.findItem(R.id.action_search);

        SearchView searchView = (SearchView)item.getActionView();
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                customAdapter.getFilter().filter(newText);
                return false;
            }
        });

        return  super.onCreateOptionsMenu(menu);
    }


}

nothing changed in AddActivity. I hope this will be helpfull to you.

Upvotes: 1

Related Questions