Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
banga_ivan
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 10
#1

Обновление содержимого Recyclerview - Программирование Android

17.11.2015, 21:57. Просмотров 824. Ответов 2
Метки нет (Все метки)

Всем привет. Изучаю Android. Разрабатываю первое приложение. Создал список с помощью Recyclerview. Возникла проблема. После записи данных в БД новый пункт появляется только после перезапуска приложения. Объясните пожалуйста в теории как заставить обновляться этот список.

Код проекта: https://bitbucket.org/devbanha/smart-wallet/src
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2015, 21:57     Обновление содержимого Recyclerview
Посмотрите здесь:

Обновление recyclerview во время скрола - Программирование Android
Как правильно обновлять данные во время скрола recyclerview?? Просто я очищаю адаптер recyclerview, отправляю запрос на сервер, получаю...

Удаление элемента recyclerview и обновление списка - Программирование Android
Я загружаю фотки в recyclerview с сервера с определенной пагинацией. То есть сначала(при открытии фрагмента) загружаются первые десять штук...

Обновление содержимого ViewPager - Программирование Android
Есть ли какие-нибудь способы обновить содержимое всех страницы ViewPager'а? Придумал только походить пару раз туда обратно по всем...

Обновление содержимого экрана - Программирование Android
Добрый день! На экране расположены элементы TextView. Я программно меняю их содержимое и должна отобразить, после чего процесс...

RecyclerView использование ItemDecoration - Программирование Android
Здравствуйте! Никак не пойму, как использовать ItemDecoration не для всех элементов, а только между типами "категория" и "пункт" (то...

RecyclerView фиксированый height - Программирование Android
Мне кажется много кто встречался с данной проблемой. у меня есть корзина, в ней RecyclerView с фиксированой высотой. (что бы там 3...

RecyclerView сохранения в JSON - Программирование Android
У меня есть recyclerview (в фрагменте) и фрагмент с детальной информацией к одному из элементов. Все бы хорошо, но когда мои данные...

Как развернуть RecyclerView - Программирование Android
Делаю свой месседжер и столкнулся с проблемой, как развернуть RecyclerView (на подобии сообщений в ВК) у меня есть идея, вставлять...

NullPointerException в адаптере RecyclerView - Программирование Android
Здравствуйте уважаемые форумчане! Столкнулся с такой проблемой, в RecyclerView создаю адаптер для добавления карточек, в карточке, в...

Обработка кликов в RecyclerView - Программирование Android
Доброго времени суток господа. Сделал обработку кликов по вот этому примеру ...

Загрузка изображений в RecyclerView - Программирование Android
Здравствуйте, каким образом можно динамически загружать картинки в RecyclerView из интернета, чтобы все это дело не тормозило и было более...

FloatingButton + RecyclerView+ RefreshLayout - Программирование Android
Имеется xml: <!--RefreshLayout--> <android.support.v4.widget.SwipeRefreshLayout ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xotabu4
94 / 94 / 2
Регистрация: 02.02.2013
Сообщений: 290
17.11.2015, 23:38     Обновление содержимого Recyclerview #2
используйте notifyDataSetChanged()
banga_ivan
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 10
18.11.2015, 12:23  [ТС]     Обновление содержимого Recyclerview #3
А можно немного подробнее? Нашел некоторую информацию об использовании этого метода. Попробовал использовать. Планировал что при удалении данных из БД список сразу обновится (метод onOptionsItemSelected). Не работает. Объясните пожалуйста что делаю не так.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package info.devbanha.smartwallet.activity;
 
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.TextView;
 
import java.util.ArrayList;
import java.util.List;
 
import info.devbanha.smartwallet.R;
import info.devbanha.smartwallet.adapters.RecyclerViewAdapter;
import info.devbanha.smartwallet.data.ItemData;
import info.devbanha.smartwallet.data.database.DataBaseController;
import info.devbanha.smartwallet.data.database.ItemDB;
import info.devbanha.smartwallet.tag.Tags;
 
public class MainActivity extends AppCompatActivity {
 
    private TextView textView;
    private RecyclerViewAdapter recyclerViewAdapter;
    private DataBaseController db;
    private Tags tag = new Tags();
    private List<ItemData> itemData = new ArrayList<>();
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        textView = (TextView) findViewById(R.id.textViewAnim);
 
        db = new DataBaseController(this, tag.NAME_DB(), null, tag.VERSION_DB());
 
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
 
        recyclerViewAdapter = new RecyclerViewAdapter(getItemData());
        recyclerView.setLayoutManager(linearLayoutManager);
 
        List<ItemDB> itemDBs = db.getAllItems();
        for (ItemDB it : itemDBs) {
            addData(it.getDbName(), it.getDbPrice(), it.getDbComment());
        }
 
        recyclerView.setAdapter(recyclerViewAdapter);
 
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }
 
    private void deleteDB() {
        db.deleteAll();
    }
 
    public void addData(String name, Double price, String category) {
        itemData.add(new ItemData(name, price, category));
    }
 
    public List<ItemData> getItemData() {
        return itemData;
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        Log.i(tag.MAIN_ACTIVITY_TAG(), "onResume");
        recyclerViewAdapter.notifyDataSetChanged();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_settings:
                deleteDB();
                Log.i(tag.MAIN_ACTIVITY_TAG(), "action settings");
                recyclerViewAdapter.notifyDataSetChanged();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
 
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.fab:
                Intent intent = new Intent(this, InputActivity.class);
                startActivity(intent);
                break;
            case R.id.textViewAnim:
                Animation anim;
                anim = AnimationUtils.loadAnimation(this, R.anim.anim_alpha);
                textView.startAnimation(anim);
                break;
        }
    }
}
Yandex
Объявления
18.11.2015, 12:23     Обновление содержимого Recyclerview
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru