Как я могу делиться списками массивов между действиями в студии android? - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь создать приложение android, и у меня возникла проблема. Прежде всего, я написал метод, который обращается к памяти вашего телефона и импортирует файл Excel, содержащий два столбца со значениями, представляющими время и частоту сердечных сокращений. Я прочитал данные из excel и сохранил их в списке массивов, и этот список массивов имеет тип DataFitbit (DataFitbit - это созданный мной класс, который содержит два параметра, такие как файл Excel, время и частота сердечных сокращений). Теперь я хочу создать диаграмму с этими данными в другом действии, но я думаю, что код, написанный для того, чтобы разделить мой arrayylist между этими двумя действиями, не работает. У меня нет ошибок, но когда я нажимаю sh кнопку, создающую другое действие, в котором я хочу создать диаграмму, приложение вылетает.

Это код, написанный для совместного использования списка массивов между действиями:

Bundle bundle = getIntent().getExtras();
ArrayList<DateFitbit> dateFitbit = (ArrayList<DateFitbit>) bundle.get("arraylist");
ListView listView = findViewById(R.id.listView);
ArrayAdapter<DateFitbit> items = new ArrayAdapter<DateFitbit>(this,android.R.layout.simple_list_item_1);
listView.setAdapter(items);

Код, открывающий новое действие, которое будет содержать диаграммы:

public void openChartActivity(){
    Intent intent = new Intent(this, ChartActivity.class);
    intent.putExtra("arraylist",dateFitbit);
    startActivity(intent);
}

В первый раз я попытался просмотреть свои данные в виде списка, чтобы убедиться, что общий доступ был выполнен, но, как я уже сказал, что-то не работает.

У вас есть какие-нибудь предложения для меня?

1 Ответ

0 голосов
/ 25 мая 2020

Вы не передаете basi c String ArrayList, вместо этого вы используете объект настраиваемого типа данных для ArrayList.

Чтобы это работало, вам нужно сделать что-то, как упомянуто здесь:

1. Теперь передайте его в намерении как:

Bundle bundle = new Bundle();
bundle.putSerializable("arraylist",(Serializable) dateFitbit);
intent.putExtra("Bundle",bundle);
startActivity(intent);


2. В действии получения получите его как:

Intent intent = getIntent();
Bundle bundle = intent.getBundleExtra("Bundle");
ArrayList<DataFitBit> dateFitbit= (ArrayList<DataFitBit>) bundle.getSerializable("arraylist");

Это сохранит вашу пользовательскую модель ArrayList, и вы сможете использовать ее по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...