#android
#Android
Вопрос:
Итак, я передаю массив строк в свой метод onPostExecute, но мне было интересно, как я могу получить доступ к выводам этого потока в следующем действии … т.Е. Page.class
Прямо сейчас я использую putExtra, могу ли я что-нибудь еще сделать? После приведенного здесь putExtra, как я могу получить к этому доступ в Page.class . Обратите внимание, что Page.class это НЕ тот класс, который запускает этот поток.
public void onPostExecute(String[] x){
d.dismiss();
Intent i= new Intent(ctx,Page.class);
i.putExtra("values", x);
ctx.startActivity(i);
Intent b = getIntent();
String[] values = b.getStringArrayExtra("values");
Log.d("hello", values[0]);
Комментарии:
1. Все решения работали. Я забыл удалить строку кода, потому что я реализовал AsyncTask из одного потока и не удалил все строки, которые мне были нужны.
Ответ №1:
Page.class
Это ваше действие, начатое onPostExecute()
, верно?
Тогда все, что вы добавите в дополнительный пакет, будет доступно. @Gix уже опубликовал способ доступа к пакету, поэтому я не буду здесь повторяться. Но, пожалуйста, проверьте класс bundle, чтобы посмотреть, что вы можете поместить внутрь (в принципе, почти все примитивы и массивы в порядке)
Комментарии:
1. Просто прочитайте вашу правку. Пожалуйста, убедитесь, что ваше
x
значение, которое вы вставили в intent, не пустое. Или проще, вы сначала выходите из системы следующим образом: String[] values = b.getStringArrayExtra(«значения»); Log.d («привет», значения. длина » «);2. Просто хочу убедиться, что вы не добавляете к нему массив нулевой длины.
3. да, xandy прав, убедитесь, что ваш результирующий массив x не пуст, поэтому просто выполните некоторые протоколирования, чтобы увидеть, что вы отправляете и что получаете, как только начнете новое действие.
4. Я почти уверен, что x не пуст. Я вошел
x[0]
вonPostExecute
метод, и он вернул ожидаемое значение. но когда я пытаюсь получить к нему доступ в классе page, он пуст.
Ответ №2:
В onCreate(...)
вашей активности «Страница» просто используйте Intent i = getIntent()
, затем используйте String[] values = i.getStringArrayExtra("values")
Комментарии:
1. когда я делаю это, я получаю исключение с нулевым указателем при попытке восстановить значения [0], я добавил то, что пробовал
Ответ №3:
Если вы запускаете страницу активности прямо из onPostExecute, вы должны иметь возможность получить доступ к дополнительным функциям в активности страницы без каких-либо проблем. Способ сделать это — использовать следующий код:
Bundle extras = getIntent().getExtras();
String values = extras.getString("values");
и вот они у вас есть
Комментарии:
1. это не работает, я получаю исключение с нулевым указателем, я добавил то, что пробовал