I am creating an app Where the user can search database with inputs provided by user through edittext boxes.I am passing them to the database file as string argument to query and I am getting error.attaching the code
This is the button click listener and autoname is Autotextview
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyDatabase m =new MyDatabase(getActivity());
Cursor c=m.searchname(autoname.getText().toString());
simpleCursorAdapter = new SimpleCursorAdapter(getActivity(), R.layout.custom_layout_row, c,
new String[]{"_id", "name", "phone", "email", "subject"},
new int[]{R.id.rownumber, R.id.rowname, R.id.rowphone, R.id.rowmail, R.id.rowsubject}, 0);
listView.setAdapter(simpleCursorAdapter);
}
});
This is the code in Mydatabase.java(Database file)
public Cursor searchname(String argument) {
Cursor cursor = null;
cursor = s.query("student", null, "name=?", new String[]{argument}, null, null, null);
return cursor;
}
I am getting error in the query string
if i run raw query
Cursor cursor = db.rawQuery("select * from student where name =?", new String[]{argument});
i got this error:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String, java.lang.String[])' on a null object reference at com.techpalle.miniproject.MyDatabase.searchname(MyDatabase.java:107) at com.techpalle.miniproject.SearchFragment$2.onClick(SearchFragment.java:71)