Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Код проекта: https://bitbucket.org/devbanha/smart-wallet/src
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2015, 21:57
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Обновление содержимого Recyclerview (Программирование Android):

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

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

Advanced RecyclerView и Expandable RecyclerView - Программирование Android
Сделал expandable recycler view на основе advancedRecyclerView сборочки, но не важно это думаю, наследуется от обычного RecyclerView. ...

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

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

RecyclerView внутри recyclerView - Программирование Android
Добрый день. Хочу сделать список recyclerView c горизонтальной прокруткой, который отображает допустим 20 элементов(card). Т.е....

2
Xotabu4
98 / 98 / 2
Регистрация: 02.02.2013
Сообщений: 317
17.11.2015, 23:38 #2
используйте notifyDataSetChanged()
0
banga_ivan
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 10
18.11.2015, 12:23  [ТС] #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;
        }
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2015, 12:23
Привет! Вот еще темы с ответами:

RecyclerView - Программирование Android
Скажите что делаю не так. Цель: выводить содержимое бд заголовок, текст и т.п. Как я делал, точнее по гайдам. Тут из базы передаю...

RecyclerView click - Программирование Android
Добрый ночи. ребята как при клики зафиксировать блок. recView.addOnItemTouchListener( new...

RecyclerView и SQLite - Программирование Android
Здравствуйте делал по этому гайду RecyclerView http://www.vogella.com/tutorials/AndroidRecyclerView/article.html#exercise_recycleview . У...

Retrofit Recyclerview - Программирование Android
Здравствуйте, уважаемые форумчане. Помогите добавить onScroll в RecyclerView. Вот код public class MainActivity extends...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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