Метод вызова Activiti через ListView
Метод вызова Activiti через ListView
Всем привет.
Каким образом реализовать следующее: Любое значение списка ListView вызывает ТОЛЬКО ОДНО И ТО ЖЕ новое Activiti и отображает текст, который изначально соответствует своему значению в списке LIstView, а так же при этом сам текст храниться в формате xml.
Фуф... вроде как то так)
На многих форумах и их ветках есть подобные вопросы : " У меня в списке 100 значений и мне надо 100 Activiti (причем массив информации 99% разработчиков пишут прям в коде)"? Так вот им часто дают советы, что это не правильно, что надо делать максимум 2-3 Activiti и информацию хранить в xml. Но все кто заводил подобные вопросы отписывались, что и так пойдет... ветка загибалась!
Прошу отозваться тех, кто реально такое реализовал.
Каким образом реализовать следующее: Любое значение списка ListView вызывает ТОЛЬКО ОДНО И ТО ЖЕ новое Activiti и отображает текст, который изначально соответствует своему значению в списке LIstView, а так же при этом сам текст храниться в формате xml.
Фуф... вроде как то так)
На многих форумах и их ветках есть подобные вопросы : " У меня в списке 100 значений и мне надо 100 Activiti (причем массив информации 99% разработчиков пишут прям в коде)"? Так вот им часто дают советы, что это не правильно, что надо делать максимум 2-3 Activiti и информацию хранить в xml. Но все кто заводил подобные вопросы отписывались, что и так пойдет... ветка загибалась!
Прошу отозваться тех, кто реально такое реализовал.
Re: Метод вызова Activiti через ListView
Привет, значения, если они постоянные можно храинть в string-array, в strings.xml, например:
Массив получить из xml таким образом:
Вот этот массив уже передавать в адаптер.
Передать текст можно таким образом:
Получить этот текст в в созданном активити:
Это один из вариантов решения проблемы.
Код: Выделить всё
<string-array name="array_name">
<item>Text1</item>
<item>Text2</item>
<item>Text3</item>
</string-array>
Код: Выделить всё
String[] stringArray = getResources().getStringArray(R.array.array_name);
Передать текст можно таким образом:
Код: Выделить всё
Intent mIntent = new Intent(getApplicationContext(), AnotherActivity.class);
mIntent.putExtra("text", "текст из массива или текст из view");
startActivity(mIntent);
Код: Выделить всё
Intent intent = getIntent();
if(intent != null) {
String test = intent.getStringExtra("text");
}
Re: Метод вызова Activiti через ListView
Elek, привет. У меня на первом этапе реализовано так:
Добавляю в strings.xml следующий код
Далее делаю стандартный список
Теперь необходимо таким образом реализовать приложение:
User запускает приложение (Сборник пословиц)) и видит список (пословицы разбиты на темы), кликает на нужную ему тему и читает всю информацию по данной теме на новой вкладке, прочитал, жмет Back, и снова попадает в список, выбрал тему и вновь читает всю всю информацию по данной теме на новой вкладке.
Так вот я хочу что бы всегда открывалась только одна Activiti и выводила информацию (мой случай - текст) согласно привязки к информации в списке. Из описанного Вами метода я не смог понять от куда новая Activiti потянет "основную" информацию (текст)?
Добавляю в strings.xml следующий код
Код: Выделить всё
<resources>
<string name="app_name">NewTest</string>
<string-array name="zag_names">
<item>ТЕСТ1</item>
<item>ТЕСТ2</item>
<item>ТЕСТ3</item>
<item>ТЕСТ4</item>
<item>ТЕСТ5</item>
<item>ТЕСТ6</item>
<item>ТЕСТ7</item>
<item>ТЕСТ8</item>
<item>ТЕСТ9</item>
<item>ТЕСТ10</item>
<item>ТЕСТ11</item>
<item>ТЕСТ12</item>
<item>ТЕСТ13</item>
<item>ТЕСТ14</item>
<item>ТЕСТ15</item>
<item>ТЕСТ16</item>
<item>ТЕСТ17</item>
</string-array>
</resources>
Код: Выделить всё
public class MainActivity extends ListActivity {
final String[] ZagNamesArray = getResources().getStringArray(R.array.zag_names);
private ArrayAdapter<String> mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, ZagNamesArray);
setListAdapter(mAdapter);
}
}
User запускает приложение (Сборник пословиц)) и видит список (пословицы разбиты на темы), кликает на нужную ему тему и читает всю информацию по данной теме на новой вкладке, прочитал, жмет Back, и снова попадает в список, выбрал тему и вновь читает всю всю информацию по данной теме на новой вкладке.
Так вот я хочу что бы всегда открывалась только одна Activiti и выводила информацию (мой случай - текст) согласно привязки к информации в списке. Из описанного Вами метода я не смог понять от куда новая Activiti потянет "основную" информацию (текст)?
Re: Метод вызова Activiti через ListView
Как будут храниться пословицы ? Тоже массив xml ?
Можно передавать номер текста в массиве и на основе этого номера загружать остальные пословицы.
Можно попробовать хранить все в базе данных.
Сделать 2 таблицы, в одной хранить темы пословиц и порядковый номер темы. Во второй таблице хранить пословицы и порядковый номер темы, к которой относится данная пословица.
Можно передавать номер текста в массиве и на основе этого номера загружать остальные пословицы.
Можно попробовать хранить все в базе данных.
Сделать 2 таблицы, в одной хранить темы пословиц и порядковый номер темы. Во второй таблице хранить пословицы и порядковый номер темы, к которой относится данная пословица.
Re: Метод вызова Activiti через ListView
Вот тут я пока не определился, будет ли зависеть выбор условия хранения пословиц (либо массив XML, либо БД) от реализации отображения этих пословиц? Другими словами каждая пословица на своей пронумерованной странице, а перемотка между страницами кнопками <- СЮДА и ТУДА->)) Что посоветуешь?
Re: Метод вызова Activiti через ListView
На данном этапе лучше сделать, через массивы в xml.
При кнопке <- туда сюда -> отбавлять или добавлять позицию в массиве и брать оттуда пословицу.
При кнопке <- туда сюда -> отбавлять или добавлять позицию в массиве и брать оттуда пословицу.
Re: Метод вызова Activiti через ListView
Буду пробовать, тему пока не закрывать)