2

How can I put string value from cursor object to array list object and after that how can I return that arraylist object to calling method?

public class MySqlite extends SQLiteOpenHelper {

private static int DATABASE_VERSION = 1;
private static String DATABASE_NAME = "student_info";
ArrayList<string> arraylist;

public MySqlite(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    // TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase sqlite) {
    // TODO Auto-generated method stub
    String query = "CREATE TABLE student_datatable(first_name Text, last_name Text, gender Text, street Text, city Text, contact Text)";
    sqlite.execSQL(query);
}

@Override
public void onUpgrade(SQLiteDatabase sqlite, int arg1, int arg2) {
    // TODO Auto-generated method stub
    sqlite.execSQL("DROP TABLE IF EXISTS student_datatable");
    onCreate(sqlite);
}

public void addrecord(String firstname, String lastname,String radiovalue,String street,String city,String contact) {
    SQLiteDatabase sqlite = this.getWritableDatabase();
    ContentValues cv = new ContentValues();
    cv.put("first_name", firstname);
    cv.put("last_name", lastname);
    cv.put("gender", radiovalue);
    cv.put("street", street);
    cv.put("city", city);
    cv.put("contact", contact);

    sqlite.insert("student_datatable", null, cv);
    sqlite.close();
}

public ArrayList<String> searchrecord(String firstname)
{
    arraylist=new ArrayList<string>();
    SQLiteDatabase sql=this.getReadableDatabase();
    String lastnamefromtable = null;

    String param[]=new String[1];
    param[0]=firstname;
    Cursor c=sql.rawQuery("Select * from student_datatable where first_name=?", param);
    if(c.moveToFirst())
    {
        do
        {

            arraylist.add(c.getString(c.getColumnIndex("last_name")));


        }while(c.moveToNext());
    }
    return arraylist;
    }

public void deleterecord(String firstname)
{
    String Table_name="student_info";
    String column_name="first_name";
    SQLiteDatabase sql=this.getWritableDatabase();
    String lastnamefromtable=null;
    String param[]=new String[1];
    param[0]=firstname;
    sql.execSQL("DELETE FROM student_info where first_name=?",param);
}

}

My activity is as following:

public class Searchrecord extends Activity {

Intent i;
EditText firstname;
TextView getfirstname,getlastname,getgender,getstreet,getcity,getcontact;
MySqlite mysql;
ArrayList<String> arraylist;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.searchrecord);
    firstname=(EditText) findViewById(R.id.editText1);
    getfirstname=(TextView) findViewById(R.id.textView2);
    getlastname=(TextView) findViewById(R.id.textView3);
    getgender=(TextView) findViewById(R.id.textView4);
    getstreet=(TextView) findViewById(R.id.textView5);
    getcity=(TextView) findViewById(R.id.textView6);
    getcontact=(TextView) findViewById(R.id.textView7);
    mysql=new MySqlite(getApplicationContext());
    arraylist=new ArrayList<String>();
}

public void search(View v)
{
    if(firstname.getText().toString().equals(""))
    {
        Toast.makeText(getApplicationContext(), "Please Provide value", Toast.LENGTH_SHORT).show();
    }
    else
    {
        arraylist=mysql.searchrecord(firstname.getText().toString());


    }

}
public void back(View v)
{
    i = new Intent(getApplicationContext(), MainActivity.class);
    startActivity(i);
}
}
1
  • What is the problem with your searchrecord function (except that you close neither the cursor nor the database)? Commented Nov 27, 2013 at 20:33

1 Answer 1

4

Try this code inside your searchrecord method,

public List<String> searchrecord(String firstname)
{
    List<String> arraylist = new ArrayList<String>();
    SQLiteDatabase sql=this.getReadableDatabase();

    String query = "SELECT last_name FROM student_datatable WHERE first_name = '"+firstname+"';

    Cursor c = sql.rawQuery(query, null);
    while(c.moveToNext()) {
        arraylist.add(c.getString(0);
    }
    c.close();
    return arraylist;
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.