0
Я довольно новичок в разработке приложений для Android, и я пытаюсь найти строки из SQLite db для отображения в Listactivity, но это не работает, и программа неожиданно завершается. Вот код:Заполнение списка с использованием базы данных 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();
}*/
}
}
и этот метод в другом классе:
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;
}
Любая помощь будет оценена.
Спасибо вам ответить, но когда я удалить инициализацию заявления от первоначального места и поместите его внутри onCreate(), onListItemClick() не сможет его прочитать и, таким образом, дает ошибку. Если я оставлю инструкции инициализации как в исходном, так и в onCreate(), я получаю ту же ошибку. – ankur3000
Ну просто объявите их глобальными, а затем инициализируйте в 'onCreate()', я отредактировал свой ответ. –