2014-06-28 63 views
0

我想在sqlitedb中追加编辑文本值到顶部的新文本(索引0),并在插入行时移动以前插入的数据(从索引1开始)...插入新的排在最前面并在ListView中显示它们。我的代码适用于在底部添加行。Sqlite插入数据与ListView

帮助我..

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); 
      } 
     }); 
    } 


} 

回答

1

你可以先显示其值被插入去年通过在执行这个查询查询

从REGISTRATION_TABLE排序依据_id ASEC

选择名称,你的光标values.from光标值,你需要做ArrayList和传递的ArrayList到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); 
+0

看到 – VairavelRajendran

+0

上述修改我的答案回答,见上面 – VairavelRajendran

+0

另一种方式 - 光标C = database_ob.query(dbobj.TABLE_NAME,COLS,NULL,NULL,NULL,NULL,dbobj.KEY_ID + “降序” ); – SreeAndroidDev