Android ListView с SQLite - PullRequest
       18

Android ListView с SQLite

2 голосов
/ 24 апреля 2010

Я бы хотел обновить элементы Listview. Эти элементы заполняются из базы данных SQLite. Мой код ниже

public class Weeve extends Activity {
      private String[] lv_arr;
    protected ListView CView;
    private DBAdapter mDbHelper;

public void onCreate (Bundle saveInstanceState) {

super.onCreate(savedInstanceState);

   mDbHelper = new DBAdapter(this);
    mDbHelper.open();

    Cursor c = mDbHelper.getAll();
    if (c.getCount() > 0)
    {if (c.moveToFirst())
    {
        ArrayList strings = new ArrayList();
       do {                    
          String mC = c.getString(0);
          strings.add(mC);  

       } while (c.moveToNext());
       lv_arr = (String[]) strings.toArray(new String[strings.size()]);
    }
    }  
    else Toast.makeText(this, 
           "No more Records", 
           Toast.LENGTH_SHORT).show();
    c.close();

    ListView CView = new ListView(this);
    CView.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, lv_arr));      
    setContentView(CView);}}

Я бы хотел обновить это представление списка после добавления, обновления или удаления таблицы SQLite. Эти операции вызываются содержимым или меню параметров. Я пытался создать этот код в отдельной функции и вызывать его после каждой операции. Но не могу. Я думаю, что setContentView (CView) заявление.

Я также пытался использовать SimpleCursorAdapter, как образец блокнота с Android.com. Я получил сообщение об ошибке. Помоги мне.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2010

Вы можете сделать это, используя Adapter.notifyDataSetChanged ().

Тем не менее, я нахожу ваш код немного не в себе. Вы выбираете строки из базы данных с помощью курсора, просто чтобы создать новый ArrayAdapter для значений строк. Почему бы не использовать CursorAdapter для поддержки вашего списка? Вот для чего он предназначен.

0 голосов
/ 12 июля 2010

убедитесь, что все ваши действия находятся в манифесте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...