Je suis assez nouveau dans le développement d'applications android et j'essaie d'obtenir des lignes d'un SQLite db pour apparaître comme une Listactivity, mais cela ne fonctionne pas et le programme se termine de façon inattendue. Voici le code:Remplir une liste en utilisant une base de données SQLite
package ankur.test.app;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class testMenu extends ListActivity{
HotOrNot Infor = new HotOrNot(this);
{
Infor.open();
}
String[] result = Infor.getList();
{
Infor.close();
}
@Override
protected void onCreate(Bundle ankurtestlist) {
// TODO Auto-generated method stub
super.onCreate(ankurtestlist);
setListAdapter(new ArrayAdapter<String>(testMenu.this, android.R.layout.simple_list_item_2, result));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Object cheese = result[position];
/* try{
Class ourClass = Class.forName("ankur.test.app."+ cheese);
Intent ourIntent = new Intent(testMenu.this, ourClass);
startActivity(ourIntent);
}catch(ClassNotFoundException e){
e.printStackTrace();
}*/
}
}
et c'est la méthode dans une autre classe:
public String[] getList() {
// TODO Auto-generated method stub
String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_HOTNESS};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
ArrayList name = new ArrayList();
int i = 0;
int iName = c.getColumnIndex(KEY_NAME);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
name.add(c.getString(iName));
i++;
}
String[] result = (String[]) name.toArray();
return result;
}
Toute aide serait appréciée.
Merci pour vous répondre, mais quand je retire les déclarations d'initialisation du lieu d'origine et mettez-le dans onCreate(), le onListItemClick() n'est pas capable de le lire et donne donc une erreur. Si je laisse les instructions d'initialisation à la fois sur l'original et dans onCreate(), j'obtiens la même erreur. – ankur3000
Eh bien, juste les déclarer comme globaux et ensuite initialiser dans 'onCreate()', j'ai édité ma réponse. –