Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление ListView 
:(
    Опции темы
alexmx
Дата 9.3.2014, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.2.2014

Репутация: нет
Всего: нет



Доброго  времени  суток
Есть  Основной  класс  MainActivity  который  запускает  сервис и подключается  к  адаптеру
Код:
Код

package ru.myscanner.scannerth;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;

import android.widget.ListView;


public class MainActivity extends ListActivity {
    SqlAdapter adapter;
    ListView listView;
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                
                setUpView();
               
                startService(new Intent(this, CatalogService.class));
            }
        public void setUpView() {
            listView = getListView();
            
            adapter = new SqlAdapter(this);
            setListAdapter(adapter);
            
        }




В  сервисе  происходит  вставка  данных  и  вызов  команды  обновления  данных  в  адаптере
Код:
Код

public void ScnCatalog(){
        String insbd = null;
         String[] insertBd = null;
         ArrayList<String> listCatalog = null;
         ArrayList<String> listCatalogBd = null;
         listCatalog = getCatalog();
         listCatalogBd = getCatalogBd();
         listCatalog.removeAll(listCatalogBd);
         insertBd = listCatalog.toArray(new String[listCatalog.size()]);
         
         Intent intentCncCord = new Intent(this, CncCord.class);
         for(int i = 0; i <= insertBd.length - 1; i++) {
                insbd = insertBd[i];
                if(insbd!=null){
                    
                    db.insert(insbd); 
                    
                startService(intentCncCord.putExtra("name", insbd));
                
                }
                
            }
        
         db.close();
         SqlAdapter adapter;
         adapter = new SqlAdapter(this);
         adapter.refresh();
    }


Вопрос  в  том что  все  нормально  отрабатывается  и  без  ошибок, но  при этом  на  экране  данные  неменяются.
В  чем  может  быть  дело.
Может  в  разных  экземплярах  класса  SqlAdapter  в  MainAdapter  и  сервисе?

Добавлено через 13 минут и 24 секунды
Код адаптера:
Код

package ru.myscanner.scannerth;


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.CursorIndexOutOfBoundsException;
import android.database.sqlite.SQLiteDatabase;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class SqlAdapter extends BaseAdapter{
    static final String DB_NAME = "my.db";
    static final int DB_VERSION = 1;
    
    static final String CATALOG_TABLE = "catalogtable";
    static final String CATALOG_ID = "_id";
    private static final int ID_COLUMN = 0;
    static final String CATALOG_NAME = "catalogname";
    private static final int NAME_COLUMN = 1;
    
    private Cursor cursor;
    private SQLiteDatabase database;
     DBHelper dbOpenHelper;
    private Context context;
    
    public SqlAdapter(Context context) {
        super();
        this.context = context;
        init();
    }

    private void init() {
        DBHelper db = new DBHelper(context);
        database = db.getWritableDatabase();
        cursor = getAllEntries();
    }

    

    @Override
    public int getCount() {
        return cursor.getCount();
    }

    @Override
    public Name getItem(int position) {
        if(cursor.moveToPosition(position)){
            long id = cursor.getLong(ID_COLUMN);
            String name = cursor.getString(NAME_COLUMN);
            Name nameOnPositon = new Name(id, name);
            return nameOnPositon;
        }else{
            throw new CursorIndexOutOfBoundsException("Cant move cursor to postion");
        }    
    }

    @Override
    public long getItemId(int position) {
        Name nameOnPosition = getItem(position);
        return nameOnPosition.getId();
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TextView textView;
        if (null == convertView) {
            textView = (TextView) View.inflate(context, R.layout.list_item, null);
        } else {
            textView = (TextView) convertView;
        }
        textView.setText(getItem(position).getName());
        return textView;
    }
    
    public Cursor getAllEntries() {
        String[] columnsToTake = { CATALOG_ID, CATALOG_NAME };
        return database.query(CATALOG_TABLE, columnsToTake, null, null, null, null, CATALOG_ID);
    }
    
    public long addItem(String name) {
        ContentValues values = new ContentValues();
        values.put(CATALOG_NAME, name);
        long id = database.insert(CATALOG_TABLE, CATALOG_NAME, values);
        refresh();
        return id;
    }
    
    public void onDestroy() {
        dbOpenHelper.close();
    }
    public void refresh() {
        cursor = getAllEntries();
        notifyDataSetChanged();
        
            
    }
    


}


PM MAIL   Вверх
Felan
Дата 10.3.2014, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 284
Регистрация: 2.8.2007
Где: Самара

Репутация: нет
Всего: 7



Цитата(alexmx @  9.3.2014,  17:39 Найти цитируемый пост)
в  разных  экземплярах  класса  SqlAdapter  в  MainAdapter  и  сервисе

Ну это как минимум.


--------------------
// Любая сложная система - это темный лес. Каждый в этом лесу протаптывает свои тропинки, по ним и бегает. Лишь изредка, сходя с них, мы находим много интересного, а порою и страшного.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.