2011-12-28 2 views
4

J'ai une activité dans laquelle j'écris un nom qui est inséré dans la base de données. Dans une autre activité je veux mettre un ListView qui est rempli avec les noms qui sont dans la base de données ou ajouter le nouvel élément directement quand je l'écris dans le edittext de la première activité. J'ai réalisé l'insertion dans la partie base de données mais je n'arrive pas à comprendre comment peupler cette liste.Remplissage d'une liste à partir d'une base de données SQLite

public class Add extends Activity implements OnClickListener{ 

Button sqlUpdate; 
EditText sqlName; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.add); 
    sqlUpdate = (Button) findViewById(R.id.bFinishAdd); 
    //sqlView = (Button) findViewById(R.id.bSQLopenView); 
    sqlName = (EditText) findViewById(R.id.etAdd); 
    sqlUpdate.setOnClickListener(new OnClickListener(){ 

     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      boolean didItWork = true; 

      try{ 
      String name = sqlName.getText().toString(); 

      DBhelp entry = new DBhelp(Add.this); 
      entry.open(); 
      entry.createEntry(name); 
      entry.close(); 
      Intent i = new Intent(Add.this, Liste.class); 
      startActivity(i); 

      }catch(Exception i){ 
       didItWork = false; 
      }finally{ 
     } 
     } 


    }); 

} 


public void onClick(View arg0) { 
    // TODO Auto-generated method stub 

} 

}

Voici l'assistant de base de données:

 public class DBhelp { 

public static final String KEY_ROWID = "_id"; 
public static final String KEY_NAME = "persons_name"; 



private static final String DATABASE_NAME = "DBhelpdb"; 
private static final String DATABASE_TABLE = "peopleTable"; 
private static final int DATABASE_VERSION = 1; 

private DbHelper ourHelper; 
private final Context ourContext; 
private SQLiteDatabase ourDatabase; 


private static class DbHelper extends SQLiteOpenHelper{ 

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

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + 
       KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
       KEY_NAME + " TEXT NOT NULL);" 


     ); 
    } 

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

} 

public DBhelp(Context c){ 
    ourContext = c; 
} 
public DBhelp open() throws SQLException{ 
    ourHelper = new DbHelper(ourContext); 
    ourDatabase = ourHelper.getWritableDatabase(); 
    return this; 
} 
public void close(){ 
    ourHelper.close(); 
} 
public void createEntry(String name) { 
    // TODO Auto-generated method stub 
    ContentValues cv = new ContentValues(); 
    cv.put(KEY_NAME, name); 

    ourDatabase.insert(DATABASE_TABLE, null, cv); 
} 
public String getData() { 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{KEY_ROWID, KEY_NAME}; 
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
    String result = ""; 

    int iRow = c.getColumnIndex(KEY_ROWID); 
    int iName = c.getColumnIndex(KEY_NAME); 

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){ 
     result = result + c.getString(iRow) + " " + c.getString(iName) + "\n"; 
    } 

    return result; 
} 
public String getName(long l) { 
    // TODO Auto-generated method stub 
    String[] columns = new String[]{KEY_ROWID, KEY_NAME}; 
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID + "=" + l, null, null, null, null); 
    if (c!=null){ 
     c.moveToFirst(); 
     String name = c.getString(1); 
     return name; 
    } 
    return null; 
} 

public void updateEntry(long lRow, String mName) { 
    // TODO Auto-generated method stub 
    ContentValues cvUpdate = new ContentValues(); 
    cvUpdate.put(KEY_NAME, mName); 
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_ROWID + "=" + lRow, null); 
} 
public void deteleEntry(long lRow1) { 
    // TODO Auto-generated method stub 
    ourDatabase.delete(DATABASE_TABLE, KEY_ROWID + "=" + lRow1, null);} 
} 

Et est l'activité là où je veux mettre en œuvre le listview avec que les articles:

 public class Liste extends Activity{ 

Button btnAdd; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.liste); 
    btnAdd = (Button) findViewById(R.id.bAdd); 
    btnAdd.setOnClickListener(new OnClickListener(){ 

     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      Intent i = new Intent("com.project.mapshop.ADD"); 
      startActivity(i); 
     } 

    }); 
    TextView tv = (TextView) findViewById(R.id.tvSQLinfo); 
    DBhelp info = new DBhelp(this); 
    info.open(); 
    String data = info.getData(); 
    info.close(); 
    tv.setText(data); 

}} 

Je voudrais Soyez très reconnaissant si vous pouviez m'expliquer comment le faire ou me donner un lien avec un conseil ou un tutoriel qui pourrait m'aider . Merci beaucoup!

+0

utiliser des adaptateurs extension classe –

Répondre

8

S'il vous plaît suivre quelques tutoriels simples d'abord, quelques bons tutoriels sont:

1- Simple Example

2- ListView of Data from SQLiteDatabase

+0

Ceci est un exemple parfait de la raison pour laquelle vous ne devriez pas utiliser les liens comme réponse, le premier de ces trois n'existent plus. – keag

Questions connexes