Arti-Jack
@Arti-Jack

Почему после перехода на предыдущее активити ListView не обновляет новые значения?

Проблема заключается в том, что моё приложение не может обновить значения у ListView.

Проще будет показать это на скриншотах.
1) Менюша с ListView элментами
c432fb2f5ca546038f2bd9319347d228.png

2) Попытка изменить значение "продуктов" с 0 на 100 (Причём Toast показывает то, что это сделать вроде как удалось, переменная поменяла значение с 0 на 100)
1d11485789984a9bb14e6e0494ab689d.png

Вот не могу понять, что же мне делать с моим ListView, чтобы он показывал актуальную информацию.

Вот класс, где используется ListView (причём с собственное реализацией адаптера):
public final String[] settings = {
            "Продукты", "Кварплата", "Жильё",
            "Транспорт", "Одежда", "Развлечения"
    };
    private ListView listView;
    private CashListAdapter cashListAdapter;
    private List<Cash> cashList;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_cash_settings);

        listView = (ListView) findViewById(R.id.cashListView);
        cashList = new ArrayList<>();
        cashSettings = new FillingCashSettings();

        // Закрепляем слушателя на listView
        for (int i = 0; i < settings.length; i++) {
            cashList.add(new Cash(0, 0, i, settings[i]));
        }

        cashListAdapter = new CashListAdapter(getApplicationContext(), cashList);
        listView.setAdapter(cashListAdapter);

        // Закрепление хэндлеров
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(
                        getApplicationContext(),
                        "clicked " + view.getTag(),
                        Toast.LENGTH_SHORT
                ).show();

                FillingCashSettings.init(cashList.get(position));
                intent = new Intent(getApplicationContext(), FillingCashSettings.class);
                startActivity(intent); // переход на вторую активность (она на втором скрине)  
            }
        });
    }


Ну и класс, где происходит замена значений:
private static Cash cash;
    private EditText editText;
    private Button enterButton;
    private Button exit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_filling_cash_settings);

        //textView = (TextView) findViewById(R.id.editCashIncome);
        editText = (EditText) findViewById(R.id.editCashIncome);
        enterButton = (Button) findViewById(R.id.enter_cash_income_btn);
        exit = (Button) findViewById(R.id.exit_btn);

        enterButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                    String income = editText.getText().toString();
                    cash.setIncome(Integer.parseInt(income));
                    Toast.makeText(getApplicationContext(), cash.getName() + cash.getIncome(), Toast.LENGTH_LONG).show();
            }
        });

        exit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), CashSettingsActivity.class);
                startActivity(intent);
            }
        });
    }
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Android
Android developer at Yandex
Заполняешь ты список всегда нулями, а изменяешь зачем-то статическую переменную вообще в другом классе. Надо, скорее всего, либо startActivityforresult c внесенеием измененного элемента и notifyDatasetChanged,
либо, что вероятнее, сохранять всю эту байду куда-то в бд, читать и писать туда.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы