Обновление данных

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
Metilars
Сообщения: 9
Зарегистрирован: 09 май 2015, 20:09
Откуда: Славянск

Обновление данных

Сообщение Metilars » 18 май 2015, 19:06

Добрый вечер, столкнулся с такой проблемой, при создании Activity заполняется данными в ListView, после в другом активити создается новая запись в БД, и если закрыть то активити

Код: Выделить всё

finish();
идет возврат на первое, где ListView с данными, но данные не обновляются то, заполнение идет в onCreate.
На андроид разрабатываю первый раз можно сказать, есть тут событие onShow или что то в этом роде? И как его реализовать? Или как другим способом обновить данные не закрывая активити?

Код onCreate в активити с ListView

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contacts);

        db = LoginActivity.database.query("Contacts", null, null, null, null, null, "fio");

        if (db.moveToFirst()) {
            // определяем номера столбцов по имени в выборке
            idColIndex = db.getColumnIndex("_id");
            fioColIndex = db.getColumnIndex("fio");
            phoneColIndex = db.getColumnIndex("phone");
        }

        final Intent Contact = new Intent(this, ContactActivity.class);

        // создаем адаптер
        fillData();
        ContactAdapter = new ContactAdapter(this, ContactsItem);

        // настраиваем список
        ListView ContaсtsList = (ListView) findViewById(R.id.ContaсtsList);
        ContaсtsList.setAdapter(ContactAdapter);

        ContaсtsList.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                ContactItem p = ContactAdapter.getContactItem(position);
                int ids = p.idcontact;
                Contact.putExtra("id", ids+"");
                startActivity(Contact);
            }
        });
    }

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Обновление данных

Сообщение doter.ua » 18 май 2015, 21:08

Metilars писал(а):Добрый вечер, столкнулся с такой проблемой, при создании Activity заполняется данными в ListView, после в другом активити создается новая запись в БД, и если закрыть то активити

Код: Выделить всё

finish();
идет возврат на первое, где ListView с данными, но данные не обновляются то, заполнение идет в onCreate.
На андроид разрабатываю первый раз можно сказать, есть тут событие onShow или что то в этом роде? И как его реализовать? Или как другим способом обновить данные не закрывая активити?

Код onCreate в активити с ListView

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contacts);

        db = LoginActivity.database.query("Contacts", null, null, null, null, null, "fio");

        if (db.moveToFirst()) {
            // определяем номера столбцов по имени в выборке
            idColIndex = db.getColumnIndex("_id");
            fioColIndex = db.getColumnIndex("fio");
            phoneColIndex = db.getColumnIndex("phone");
        }

        final Intent Contact = new Intent(this, ContactActivity.class);

        // создаем адаптер
        fillData();
        ContactAdapter = new ContactAdapter(this, ContactsItem);

        // настраиваем список
        ListView ContaсtsList = (ListView) findViewById(R.id.ContaсtsList);
        ContaсtsList.setAdapter(ContactAdapter);

        ContaсtsList.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                ContactItem p = ContactAdapter.getContactItem(position);
                int ids = p.idcontact;
                Contact.putExtra("id", ids+"");
                startActivity(Contact);
            }
        });
    }
Есть onResume() - при показе ранее созданного активити, которое было скрыто по тем или иным причинам.
ALT + INSERT выбираешь Override и ищешь там этот метод (можно юзать поиск).
Если нужно при закрытии конкретного активити, то можно запускать его forResult и отлавливать закрытие, подробнее: гугл.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Metilars
Сообщения: 9
Зарегистрирован: 09 май 2015, 20:09
Откуда: Славянск

Re: Обновление данных

Сообщение Metilars » 30 май 2015, 01:46

doter.ua писал(а):
Metilars писал(а):Добрый вечер, столкнулся с такой проблемой, при создании Activity заполняется данными в ListView, после в другом активити создается новая запись в БД, и если закрыть то активити

Код: Выделить всё

finish();
идет возврат на первое, где ListView с данными, но данные не обновляются то, заполнение идет в onCreate.
На андроид разрабатываю первый раз можно сказать, есть тут событие onShow или что то в этом роде? И как его реализовать? Или как другим способом обновить данные не закрывая активити?

Код onCreate в активити с ListView

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.contacts);

        db = LoginActivity.database.query("Contacts", null, null, null, null, null, "fio");

        if (db.moveToFirst()) {
            // определяем номера столбцов по имени в выборке
            idColIndex = db.getColumnIndex("_id");
            fioColIndex = db.getColumnIndex("fio");
            phoneColIndex = db.getColumnIndex("phone");
        }

        final Intent Contact = new Intent(this, ContactActivity.class);

        // создаем адаптер
        fillData();
        ContactAdapter = new ContactAdapter(this, ContactsItem);

        // настраиваем список
        ListView ContaсtsList = (ListView) findViewById(R.id.ContaсtsList);
        ContaсtsList.setAdapter(ContactAdapter);

        ContaсtsList.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                ContactItem p = ContactAdapter.getContactItem(position);
                int ids = p.idcontact;
                Contact.putExtra("id", ids+"");
                startActivity(Contact);
            }
        });
    }
Есть onResume() - при показе ранее созданного активити, которое было скрыто по тем или иным причинам.
ALT + INSERT выбираешь Override и ищешь там этот метод (можно юзать поиск).
Если нужно при закрытии конкретного активити, то можно запускать его forResult и отлавливать закрытие, подробнее: гугл.
Спасибо большое) разобрался, все работает отлично)

Ответить