Итак, я передаю массив String в свой метод 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]);
Ваш Page.class
- это активность, запущенная onPostExecute()
, правильно?
Тогда все, что вы добавили в Extra Bundle, было бы доступно. @Gix уже опубликовал способ доступа к пакету, поэтому я не повторяюсь здесь. Но, пожалуйста, проверьте класс bundle, чтобы увидеть, что вы можете поместить внутри (практически все примитивы и массивы в порядке)
x
вы указали в намерении, не пустой. Или проще, вы сначала выходите из системы: String [] values = b.getStringArrayExtra ("values"); Log.d ("привет", values.length + "");
Если вы запускаете страницу активности прямо из onPostExecute, вы можете получить доступ к дополнительным функциям на странице Activity без каких-либо проблем. Способ сделать это - использовать следующий код:
Bundle extras = getIntent().getExtras();
String values = extras.getString("values");
и там у вас есть
В onCreate(...)
вашей деятельности "Страница" просто используйте Intent i = getIntent()
, затем используйте String[] values = i.getStringArrayExtra("values")