Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 65, средняя оценка - 4.98
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
#1

Принятие данных из Activity в Fragment - Программирование Android

03.03.2013, 20:00. Просмотров 8477. Ответов 46
Метки нет (Все метки)

Здравствуйте, Дело вот как обстоит, мне нужно приянять один стринг параметр в фрагменте для дальнейшей обработки.

Пытался таким способом, не получилось.

Java
1
2
 Bundle extras = getActivity().getIntent().getExtras();
 String key = extras.getString(JSON);
Bundle не принимает ничего если посылать.

UPD:

Мне нужно принять данные чтобы отправить на другую активность. Я из FragmentActivity хочу полчить параметр в Fragment в котором будет производиться интент на другую активность с этим праметром.

UPD2

Пытался с помощью setArgument() \ getArgument() тоже ошибку выдает

В активити пишу:

Java
1
2
3
4
Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
DetalsFragments fragobj = new DetalsFragments();
fragobj.setArguments(bundle);

В фрагменте:

Java
1
Log.v("", "" + getArguments().getString("edttext"));
И ничего…
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 02:35     Принятие данных из Activity в Fragment #41
перекачал, то же самое
Java
1
2
3
                        Intent intent = new Intent(getActivity().getApplicationContext(), DetailFragment.class);
            intent.putExtra("value", item);
            startActivity(intent);
заменил DetailFragment на DetailActivity и все заработало, никаких ошибок.

Добавлено через 9 минут
и в портретной ориентации тоже все работает.
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
04.03.2013, 11:59  [ТС]     Принятие данных из Activity в Fragment #42
Цитата Сообщение от V0v1k Посмотреть сообщение
перекачал, то же самое
Java
1
2
3
                        Intent intent = new Intent(getActivity().getApplicationContext(), DetailFragment.class);
            intent.putExtra("value", item);
            startActivity(intent);
заменил DetailFragment на DetailActivity и все заработало, никаких ошибок.

Добавлено через 9 минут
и в портретной ориентации тоже все работает.
Это в каком примере? В последнем или в том который с фейсбук сдк?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 12:18     Принятие данных из Activity в Fragment #43
в последнем. или вы говорили перекачать тот где фейсбук сдк?
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
04.03.2013, 15:27  [ТС]     Принятие данных из Activity в Fragment #44
Цитата Сообщение от V0v1k Посмотреть сообщение
в последнем. или вы говорили перекачать тот где фейсбук сдк?
Последний. Ну измените в старом вызов не активности, а фрагмента, тогда все заработает. Я там написал комменты где и как передавать нужно.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class DetailActivity extends FragmentActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            finish();
            return;
        }
        setContentView(R.layout.details_activity_layout);
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String s = extras.getString("value");
            // а вот теперь мне нужно передать в DetaliFragment "s" в котором хранится параметр
            TextView view = (TextView) findViewById(R.id.detailsText);
            view.setText(s);
        }
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class DetailFragment extends Fragment {
 
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
 
        super.onActivityCreated(savedInstanceState);
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
 
        super.onCreate(savedInstanceState);
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
 
        View view = inflater.inflate(R.layout.details, container, false);
        return view;
    }
 
    public void setText(String item) {
 
        TextView view = (TextView) getView().findViewById(R.id.detailsText);
        view.setText(item);
        view.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
 
                // а тут я хочу распечатать то что принял с активности
            }
        });
    }
}
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.03.2013, 17:08     Принятие данных из Activity в Fragment #45
Java
1
2
3
4
5
6
7
8
9
10
if (extras != null) {
            String s = extras.getString("value");
        
            DetailFragment fragment = (DetailFragment) getSupportFragmentManager().findFragmentById(
                    R.id.detailFragment);
            fragment.setText(s);
            
            //TextView view = (TextView) findViewById(R.id.detailsText);
            //view.setText(s);
        }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void setText(final String item) {
 
        TextView view = (TextView) getView().findViewById(R.id.detailsText);
        view.setText(item);
        view.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
 
                Toast.makeText(getActivity(), item, Toast.LENGTH_SHORT).show();
            }
        });
    }
dajver
407 / 271 / 18
Регистрация: 18.09.2010
Сообщений: 1,106
04.03.2013, 17:22  [ТС]     Принятие данных из Activity в Fragment #46
Спасибо огромное все получилось!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2013, 18:21     Принятие данных из Activity в Fragment
Еще ссылки по теме:
Android Fragment, Splash-activity, Jsoup onPostExecute
Android Взаимодействие Fragment-ов через Activity (interface)
Android Жизненный цикл Activity и Fragment при повороте
Android Ошибка при конвертации класса Activity в Fragment (SherlockFragment)
Android Android - Передача данных с одного Activity на другое Activity

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
04.03.2013, 18:21     Принятие данных из Activity в Fragment #47
V0v1k,ох какой тред захерачили, у тебя много времени свободного завидую.
Yandex
Объявления
04.03.2013, 18:21     Принятие данных из Activity в Fragment
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru