У меня есть длинный текст, который я хочу показать ему по страницам. Для моей первой попытки я создал 10 действий и поместил некоторую кнопку, когда пользователь нажимает на нее, показывает следующее действие.
Я где-то читал, что могу загрузить весь текст в одном действии с помощью Intent. Является ли это возможным? Как это возможно? Я не хочу, чтобы пользователь просматривал страницу.
Спасибо
Предположим, что у вас есть ваша деятельность под названием MyTextActivity
, а затем в своем прослушивателе кнопок вы передаете текст, который хотите, в намерение вашей деятельности:
Intent i = new Intent(this, MyTextActivity.class);
i.putExtra("myText", "this is the text you want to display in the next page");
startActivity(i);
Затем в MyTextActivity
вы поместите следующее в onCreate()
:
String textToDisplay = "";
Bundle extras = getIntent().getExtras();
if (extras != null){
textToDisplay = extras.getString("myText");
}
тогда вы установите текст TextView в этот текст.
putExtra()
в неком массиве или списке, а затем в вашей функции putExtra()
вы просто передаете индекс элемента, который хотите отобразить. Поэтому, когда вы нажимаете «Далее», вы просто увеличиваете свой индекс (при условии, что вы делаете правильную проверку индекса). Таким образом, ваше изменение будет i.putExtra("myTextIndex", index)
где index является целым числом. Затем, когда вы получите его, вы будете делать extra.getInt("myTextIndex")
Если текст статичен, вы можете поместить его в строковый ресурс и получить доступ к нему во всех ваших действиях. В противном случае вы можете привязать строку к намерению, используя putExtra
.
Я думаю, что ответ "не делай этого". Android работает на разных устройствах, и вы должны обрабатывать случаи, когда он не будет соответствовать экрану, который соответствует устройству, которое вы используете для тестирования. Рассмотрим, например, планшеты.
Предполагая, что у вас уже есть TextView и кнопка в вашей деятельности, когда нажата кнопка, вам не нужно перейти к новому действию. Вместо этого вы можете изменить содержимое существующего текстового представления. Просто используйте TextView.setText(), чтобы изменить его.