Fragment Result
Fragment Result
Доброго времени суток.
Суть: Есть Activity, в ней AsyncTask. Также есть Элемент табы (ActionBarActivity), которые вынуждают меня разбить приложение на фрагменты. AsyncTask > onPostExecute возвращает мне переменную result.
Вопрос: Как вывести переменную result во Fragment1 > textView1?
Заранее благодарю.
Суть: Есть Activity, в ней AsyncTask. Также есть Элемент табы (ActionBarActivity), которые вынуждают меня разбить приложение на фрагменты. AsyncTask > onPostExecute возвращает мне переменную result.
Вопрос: Как вывести переменную result во Fragment1 > textView1?
Заранее благодарю.
Re: Fragment Result
Почитай урок об активити и фрагментах (один из первых) там было про взаимодействие и как из активити найти фрагмент и вывести в нем информацию.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Fragment Result
Ну хорошо, ни в какую не хочет работать передача через Bundle
MainActivity
Fragment1
Кто может помочь? Заранее благодарен.
MainActivity
Код: Выделить всё
@Override
protected void onCreate(Bundle savedInstanceState) {
// ... Здесь вызываются ActionBarTabs 2.3
Bundle bundle=new Bundle();
bundle.putString("name", "From Activity");
Fragment1 fragobj=new Fragment1();
fragobj.setArguments(bundle);
}
Код: Выделить всё
public class Fragment1 extends Fragment {
TextView MyText;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frt, container, false);
MyText = (TextView) view.findViewById(R.id.Stro);
if(this.getArguments() != null){// Просто ничего не возвращает ибо Null
MyText.setText(String.valueOf(this.getArguments().getString("name")));
}
return view;
}
}
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Fragment Result
[syntax=java5]
Fragment1 fragobj=new Fragment1();
fragobj.setArguments(bundle);
[/syntax]
так не будет работать. Посмотрите тут ( http://developer.android.com/guide/comp ... ments.html ) как создается фрагмент с Bundle (DetailsFragment )
Fragment1 fragobj=new Fragment1();
fragobj.setArguments(bundle);
[/syntax]
так не будет работать. Посмотрите тут ( http://developer.android.com/guide/comp ... ments.html ) как создается фрагмент с Bundle (DetailsFragment )
Re: Fragment Result
На первый взгляд по ссылке написано тоже самое, просто вынесено в статическую функцию "newInstance()". В чём подвох?Mikhail_dev писал(а):так не будет работать. Посмотрите тут ( http://developer.android.com/guide/comp ... ments.html ) как создается фрагмент с Bundle (DetailsFragment )
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Fragment Result
Хотя да, разницы нет, я что-то невнимательно глянул код, думал передача Bundle идет как
Fragment1 fragobj=new Fragment1(bundle);
что не работает.
Надо код смотреть более детально. И еще, попробуйте вызвать getArguments в методе onActivityCreated. Не уверен что поможет, но есть доля сомнения.
Fragment1 fragobj=new Fragment1(bundle);
что не работает.
Надо код смотреть более детально. И еще, попробуйте вызвать getArguments в методе onActivityCreated. Не уверен что поможет, но есть доля сомнения.
Re: Fragment Result
Хорошо, есть определенный результат. Передал все-таки через адаптер. Но может кто знает как через Bundle (Который умеет передавать все типы данных), передать определенный ArrayList? Вот с таким не возникнет проблем:
Но у меня типизирован:
Код: Выделить всё
ArrayList<String> peopleData = new ArrayList<String>();
Код: Выделить всё
ArrayList<People> peopleData = new ArrayList<People>();
Re: Fragment Result
сделать Parcelable People. И запихивать их в Bundle "putParcelableArrayList()".Krager писал(а):Хорошо, есть определенный результат. Передал все-таки через адаптер. Но может кто знает как через Bundle (Который умеет передавать все типы данных), передать определенный ArrayList? Вот с таким не возникнет проблем:Но у меня типизирован:Код: Выделить всё
ArrayList<String> peopleData = new ArrayList<String>();Код: Выделить всё
ArrayList<People> peopleData = new ArrayList<People>();
Re: Fragment Result
Непонятно! Есть способ проще? Например создать расширение для Bundle которое будет принимать только мой ArrayList<Data>...klblk писал(а):сделать Parcelable People. И запихивать их в Bundle "putParcelableArrayList()".Krager писал(а):Хорошо, есть определенный результат. Передал все-таки через адаптер. Но может кто знает как через Bundle (Который умеет передавать все типы данных), передать определенный ArrayList? Вот с таким не возникнет проблем:Но у меня типизирован:Код: Выделить всё
ArrayList<String> peopleData = new ArrayList<String>();Код: Выделить всё
ArrayList<People> peopleData = new ArrayList<People>();
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Fragment Result
Если данные у вас передаются редко, то вполне можно передавать через механизмы сериализации.
Вот пример http://stackoverflow.com/a/14333555
только в People поставьте "implements Serializable"
http://habrahabr.ru/post/174015/ - статья, показывающая как количество передаваемых данных влияет на производительность
Вот пример http://stackoverflow.com/a/14333555
только в People поставьте "implements Serializable"
http://habrahabr.ru/post/174015/ - статья, показывающая как количество передаваемых данных влияет на производительность
