SreeAndroidDev
SreeAndroidDev

Reputation: 141

Sqlite inserting data with ListView

i wanted to append edit text value to in sqlitedb to the new text on top(index 0) and move the previously inserted data down(start from index 1) while inserting rows...Insert the new row on top and display them in a ListView. my code works for appending rows in the bottom .

help me out..

dbhelper.java

public class DBhelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "REGISTRATION_DB";
public static final String TABLE_NAME = "REGISTRATION_TABLE";
public static final int VERSION = 1;
public static final String KEY_ID = "_id";
public static final String NAME = "NAME";
public static final String DB = "create table " + TABLE_NAME + " ("
  + KEY_ID + " integer primary key autoincrement, " + NAME
 + " text not null );";


    public DBhelper(Context context, String name,
            CursorFactory factory, int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(DB);


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
         db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

    }

}

dataoperation.java

SQLiteDatabase database_ob;
 DBhelper openHelper_ob;
 Context context;


 public Dataoper(Context c) {
    // TODO Auto-generated constructor stub

 context=c;

 }

public Dataoper opnToRead() {
      openHelper_ob = new DBhelper(context,
        openHelper_ob.DATABASE_NAME, null, openHelper_ob.VERSION);
      database_ob = openHelper_ob.getReadableDatabase();
      return this;

     }

public Dataoper opnToWrite() {
      openHelper_ob = new DBhelper(context,
        openHelper_ob.DATABASE_NAME, null, openHelper_ob.VERSION);
      database_ob = openHelper_ob.getWritableDatabase();
      return this;

     }

 public void Close() {
      database_ob.close();
     }

public long insertData(String fname) {
      ContentValues contentValues = new ContentValues();
      contentValues.put(openHelper_ob.NAME, fname);
      opnToWrite();
      long val = database_ob.insert(openHelper_ob.TABLE_NAME, null,
        contentValues);
      Close();
      return val;

     }

 public Cursor readdata() {
      String[] cols = { openHelper_ob.KEY_ID, openHelper_ob.NAME };
      opnToWrite();
      @SuppressWarnings("static-access")
    Cursor c = database_ob.query(openHelper_ob.TABLE_NAME, cols, null,
        null, null, null, null);

      return c;

     }
 public Cursor queryAll(int nameId) {
      String[] cols = { openHelper_ob.KEY_ID, openHelper_ob.NAME};
      opnToWrite();
      Cursor c = database_ob.query(openHelper_ob.TABLE_NAME, cols,
        openHelper_ob.KEY_ID + "=" + nameId, null, null, null, null);

      return c;

     }

Mainactivity.java

public class MainActivity extends Activity {
ListView lv;
Dataoper adapter_ob;
DBhelper helper_ob;
SQLiteDatabase db_ob;
Button bt;
Cursor cursor;

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

        lv=(ListView)findViewById(R.id.list);
        bt=(Button)findViewById(R.id.bt);
        adapter_ob = new Dataoper(this);

          String[] from = { DBhelper.NAME };
          int[] to = { R.id.name };
          cursor = adapter_ob.readdata();
          SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this,
            R.layout.listitem_row, cursor, from, to);
          lv.setAdapter(cursorAdapter);

        bt.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
Intent i= new Intent(MainActivity.this, Second.class);

                startActivity(i);
            }
        });
    }


}

Upvotes: 0

Views: 698

Answers (1)

VairavelRajendran
VairavelRajendran

Reputation: 56

You can display the values first which is inserted in last by query

select NAME from REGISTRATION_TABLE orderby _id ASEC

while executing this query,you get cursor values.from cursor value,you need to make arraylist and pass that arraylist to Arrayadapter.

Arraylist<String> al=new ArrayList<String>();
cursor cursor=db.rawquery("select NAME from REGISTRATION_TABLE orderby _id ASEC",null);
if(cursor.getcount()!=0)
{ 
 cursor.movetofirst();

 do{
  al.add(cursor.getstring(0));
  }
while(cursor.movetonext());
}

cursor.close();

Arrayadapter adapter=new Arrayadapter(this,R.layout.simple_list_item_1,al);
lv.setadapter(adapter);

Upvotes: 1

Related Questions