Урок 106. Android 3. Fragments. Взаимодействие с Activity

Обсуждение уроков
NOSC
Сообщения: 1
Зарегистрирован: 31 янв 2014, 19:28

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение NOSC » 31 янв 2014, 19:43

Доброго дня.
У меня не совсем стандартная задача:
В приложении MainActivity имеет контейнер для отображения Fragment (Calc).
В activity_calc.xml есть spinner
Подскажите где правильнее будет прописать ArrayAdapter в MainActivity или Fragment

Так же если я определяю spinner:

Код: Выделить всё

Spinner minut = (Spinner)findViewById(R.id.minspinner);
в классе Calc, то он просит добавить в класс:

Код: Выделить всё

private Spinner findViewById(int minspinner) {
		// TODO Auto-generated method stub
		return null;
	}
После того как я спиннеру присваиваю адаптер - приложение вылетает с логом:

Код: Выделить всё

01-31 18:42:59.473: E/AndroidRuntime(708): FATAL EXCEPTION: main
01-31 18:42:59.473: E/AndroidRuntime(708): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.site.nagupscalc/com.site.nagupscalc.MainActivity}: java.lang.NullPointerException
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2357)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.ActivityThread.access$600(ActivityThread.java:153)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.os.Handler.dispatchMessage(Handler.java:99)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.os.Looper.loop(Looper.java:137)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.ActivityThread.main(ActivityThread.java:5226)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at java.lang.reflect.Method.invokeNative(Native Method)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at java.lang.reflect.Method.invoke(Method.java:511)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at dalvik.system.NativeStart.main(Native Method)
01-31 18:42:59.473: E/AndroidRuntime(708): Caused by: java.lang.NullPointerException
01-31 18:42:59.473: E/AndroidRuntime(708): 	at ru.nag.nagupscalc.Calc.onActivityCreated(Calc.java:26)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.Fragment.performActivityCreated(Fragment.java:1703)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.BackStackRecord.run(BackStackRecord.java:682)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.Activity.performStart(Activity.java:5113)
01-31 18:42:59.473: E/AndroidRuntime(708): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)
01-31 18:42:59.473: E/AndroidRuntime(708): 	... 11 more
Подскажите правильное решение, чтобы присвоить адаптер спиннеру, который отображается в layout фрагмента.

Спасибо

Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение petrovichtim » 20 фев 2014, 14:38

Добрый день.
Помогите найти ошибку.
Есть простая MainActivity extends FragmentActivity
Хочу вывести список из массива

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Resources r = getResources();
		String[] situationArray = r.getStringArray(R.array.situation);
		ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, situationArray);
		mListView = (ListView) findViewById(R.id.lvMain);	
		mListView.setAdapter(aa);
Отваливается с ошибкой

Код: Выделить всё

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hasebook/com.example.hasebook.MainActivity}: java.lang.NullPointerException
Вот код лайоута

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/lvMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение petrovichtim » 20 фев 2014, 15:33

petrovichtim писал(а):Добрый день.
Помогите найти ошибку.
Есть простая MainActivity extends FragmentActivity
Хочу вывести список из массива

Код: Выделить всё

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Resources r = getResources();
		String[] situationArray = r.getStringArray(R.array.situation);
		ArrayAdapter<String> aa = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, situationArray);
		mListView = (ListView) findViewById(R.id.lvMain);	
		mListView.setAdapter(aa);
Отваливается с ошибкой

Код: Выделить всё

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hasebook/com.example.hasebook.MainActivity}: java.lang.NullPointerException
Вот код лайоута

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/lvMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>
Большое спасибо за советы друзья!
Разобрался сам
Надо было добавить в начало setContentView(R.layout.activity_main);

avex
Сообщения: 24
Зарегистрирован: 22 дек 2013, 06:19

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение avex » 02 апр 2014, 00:06

Объясните новичку - можно ли класс, наследующий view, переделать во фрагмент?
Есть небольшое приложение, в нем из FirstActivity есть переход в SecondView.
Я хочу переделать приложение так, чтобы таких SecondView было два одновременно стартующих после перехода из первой активности.
Возможно ли это сделать?

dangerclose
Сообщения: 37
Зарегистрирован: 21 апр 2014, 15:27

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение dangerclose » 22 апр 2014, 17:09

Как перейти с фрагмента на активити
import java.util.ArrayList;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TabHost;
import android.widget.TabWidget;

public class MainActivity extends FragmentActivity {

private TabHost mTabHost;
private ViewPager mViewPager;
private TabsAdapter mTabsAdapter;

@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTabHost = (TabHost) findViewById(android.R.id.tabhost);
mTabHost.setup();

mViewPager = (ViewPager) findViewById(R.id.pager);

mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager);

mTabsAdapter.addTab(mTabHost.newTabSpec("simple").setIndicator("Android"), AndroidFragment.class, null);
mTabsAdapter.addTab(mTabHost.newTabSpec("contacts").setIndicator("IOs"), IOsFragment.class, null);
mTabsAdapter.addTab(mTabHost.newTabSpec("custom").setIndicator("Windows"), WindowsFragment.class, null);
mTabsAdapter.addTab(mTabHost.newTabSpec("throttle").setIndicator("DOS"), DOSFragment.class, null);

if (savedInstanceState != null) {
mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
}
}

public static class TabsAdapter extends FragmentPagerAdapter implements TabHost.OnTabChangeListener,
ViewPager.OnPageChangeListener {
private final Context mContext;
private final TabHost mTabHost;
private final ViewPager mViewPager;
private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>();

static final class TabInfo {
private final String tag;
private final Class<?> clss;
private final Bundle args;

TabInfo(final String _tag, final Class<?> _class, final Bundle _args) {
tag = _tag;
clss = _class;
args = _args;
}
}

static class DummyTabFactory implements TabHost.TabContentFactory {
private final Context mContext;

public DummyTabFactory(final Context context) {
mContext = context;
}

@Override
public View createTabContent(final String tag) {
View v = new View(mContext);
v.setMinimumWidth(0);
v.setMinimumHeight(0);
return v;
}
}

public TabsAdapter(final FragmentActivity activity, final TabHost tabHost, final ViewPager pager) {
super(activity.getSupportFragmentManager());
mContext = activity;
mTabHost = tabHost;
mViewPager = pager;
mTabHost.setOnTabChangedListener(this);
mViewPager.setAdapter(this);
mViewPager.setOnPageChangeListener(this);
}

public void addTab(final TabHost.TabSpec tabSpec, final Class<?> clss, final Bundle args) {
tabSpec.setContent(new DummyTabFactory(mContext));
String tag = tabSpec.getTag();

TabInfo info = new TabInfo(tag, clss, args);
mTabs.add(info);
mTabHost.addTab(tabSpec);
notifyDataSetChanged();
}

@Override
public int getCount() {
return mTabs.size();
}

@Override
public Fragment getItem(final int position) {
TabInfo info = mTabs.get(position);
return Fragment.instantiate(mContext, info.clss.getName(), info.args);
}

@Override
public void onTabChanged(final String tabId) {
int position = mTabHost.getCurrentTab();
mViewPager.setCurrentItem(position);
}

@Override
public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) {
}

@Override
public void onPageSelected(final int position) {
// Unfortunately when TabHost changes the current tab, it kindly
// also takes care of putting focus on it when not in touch mode.
// The jerk.
// This hack tries to prevent this from pulling focus out of our
// ViewPager.
TabWidget widget = mTabHost.getTabWidget();
int oldFocusability = widget.getDescendantFocusability();
widget.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
mTabHost.setCurrentTab(position);
widget.setDescendantFocusability(oldFocusability);
}

@Override
public void onPageScrollStateChanged(final int state) {
}
}
}

Романыч
Сообщения: 7
Зарегистрирован: 28 авг 2014, 05:05

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Романыч » 28 авг 2014, 05:12

Здравствуйте у меня проблема с доступом ресурсов из активити к фрагментам.
долблюсь уже 2-ой день.

Значится так

есть активити

Код: Выделить всё

           if (savedInstanceState == null) {
               // on first time display view for first nav item
               displayView(5);
               
               
               Fragment frag2 = getFragmentManager().findFragmentById(R.id.content_frame);

              block_news_text = (TextView)findViewById(R.id.block_news_text);
 
           block_news_text.setText("лол");
              
   
           }
    
           myDrawerList.setOnItemClickListener(new DrawerItemClickListener());
          
       }
    
       public class DrawerItemClickListener implements ListView.OnItemClickListener {
           @Override
           public void onItemClick(
               AdapterView<?> parent, View view, int position, long id
           ) {
               // display view for selected nav drawer item
               displayView(position);
           }               
       }
    
       public void displayView(int position) {
           // update the main content by replacing fragments
          fragment = null;
           switch (position) {
   
           case 5:
               fragment = new home_screen();
               break;
 
       }
           
           if (fragment != null) {
               fTrans = getFragmentManager().beginTransaction();
               fTrans.add(R.id.content_frame, fragment).commit();
              // getSupportFragmentManager().executePendingTransactions();
               getFragmentManager().executePendingTransactions();
      
               // update selected item and title, then close the drawer
               try{
                
        }
               catch(Exception e){
                   
               }
           } else {
               // error in creating fragment
               Log.e("MainActivity", "Error in creating fragment");
           }
       }
    

block_news_text находится в лайоуте фрагмента....

код фрагмента

Код: Выделить всё

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
           Bundle savedInstanceState) {
 
       View rootView = inflater.inflate(R.layout.home_screen, container, false);
 
       return rootView;
   }
   @Override
   public void onStart(){
       super.onStart();
      
   }

если запустить приложение то оно падает на строке

block_news_text.setText("лол");

NullPointExeption

если этот метод завернуть например на нажатие кнопки
то о чудо текст меняется без исключений...
а мне нужно чтобы в OnCreate при создании сецены все отработало

как быть?
Пожалуйста прошу помощи...
2 страницы гугля перерыл там в основном методы с кнопки запускаются(

Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение petrovichtim » 28 авг 2014, 08:00

Вот http://rusdelphi.com/help/kak-rabotaet- ... fragmentax немого задел тему фрагментов.
Если коротко, то в активити нужно инициализировать фрагмент, и в Bundle положить нужные данные, потом из фрагмента их забрать.
Последний раз редактировалось petrovichtim 28 авг 2014, 08:03, всего редактировалось 1 раз.

Романыч
Сообщения: 7
Зарегистрирован: 28 авг 2014, 05:05

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Романыч » 28 авг 2014, 08:02

petrovichtim писал(а):Вот http://rusdelphi.com/help/kak-rabotaet-menyu-v-fragmentax/ немого задел тему фрагментов.
Если коротко, то в активити нужно инициализировать фрагмент, и в Bundle положить нужные данные, потом из фрагмента их забрать.
тоесть здесть метод типа intent, put/getextra?

Аватара пользователя
petrovichtim
Сообщения: 77
Зарегистрирован: 11 фев 2014, 22:53
Откуда: Москва
Контактная информация:

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение petrovichtim » 28 авг 2014, 08:08

Романыч писал(а):
petrovichtim писал(а):Вот http://rusdelphi.com/help/kak-rabotaet-menyu-v-fragmentax/ немого задел тему фрагментов.
Если коротко, то в активити нужно инициализировать фрагмент, и в Bundle положить нужные данные, потом из фрагмента их забрать.
тоесть здесть метод типа intent, put/getextra?
К примеру подготавливаем фрагмент

Код: Выделить всё

static GalleryFragment newInstance(ArrayList<String> mThumbIdsList2,
			int galerytype) {
		GalleryFragment f = new GalleryFragment();
		Bundle arguments = new Bundle();
		arguments.putStringArrayList(ARRAY_IMAGE_IDS, mThumbIdsList2);
		arguments.putInt(GALLERY_TYPE, galerytype);
		f.setArguments(arguments);
		f.setHasOptionsMenu(true);
		return f;
	}
А потом в самом фрагменте

Код: Выделить всё

@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mThumbNamesList = getArguments().getStringArrayList(ARRAY_IMAGE_IDS);
		mGalerytype = getArguments().getInt(GALLERY_TYPE);
	}

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Mikhail_dev » 28 авг 2014, 08:27

Fragment frag2 = getFragmentManager().findFragmentById(R.id.content_frame);
block_news_text = (TextView)findViewById(R.id.block_news_text);
block_news_text.setText("лол");
block_news_text находится в лайоуте фрагмента....
Вы не можете таким образом работать с элементами фрагмента. У вас есть контейнер, туда кладете фрагмент. Так и ищите вашу кнопку в самом классе фрагмента, а не в активности. Для этого и придумали фрагменты, чтобы разделять вьюшки и работать с ними раздельно, а не работать только в одной активности.

finberg
Сообщения: 51
Зарегистрирован: 11 мар 2013, 14:20

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение finberg » 28 авг 2014, 10:50

Вы же ищете TextView в разметке Activity.
block_news_text = (TextView)findViewById(R.id.block_news_text);
А вам надо искать в фрагменте.
block_news_text = (TextView)frag2.findViewById(R.id.block_news_text);

Романыч
Сообщения: 7
Зарегистрирован: 28 авг 2014, 05:05

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Романыч » 28 авг 2014, 12:51

finberg писал(а):Вы же ищете TextView в разметке Activity.
block_news_text = (TextView)findViewById(R.id.block_news_text);
А вам надо искать в фрагменте.
block_news_text = (TextView)frag2.findViewById(R.id.block_news_text);
ругается NullPointerExeption

block_news_text = (TextView)findViewById(R.id.block_news_text); если сработало здесь следовательно ресур приконектился от фрагмента так как в лайоуте активити нет такого ресурса
Последний раз редактировалось Романыч 28 авг 2014, 12:57, всего редактировалось 1 раз.

Романыч
Сообщения: 7
Зарегистрирован: 28 авг 2014, 05:05

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Романыч » 28 авг 2014, 12:52

Mikhail_dev писал(а):
Fragment frag2 = getFragmentManager().findFragmentById(R.id.content_frame);
block_news_text = (TextView)findViewById(R.id.block_news_text);
block_news_text.setText("лол");
block_news_text находится в лайоуте фрагмента....
Вы не можете таким образом работать с элементами фрагмента. У вас есть контейнер, туда кладете фрагмент. Так и ищите вашу кнопку в самом классе фрагмента, а не в активности. Для этого и придумали фрагменты, чтобы разделять вьюшки и работать с ними раздельно, а не работать только в одной активности.

мне нужно будет скоро приделать таймер который будет меня ресурсы находящ в фрагменетах
если я его помещу в фрагмент то он будет запускаться только по фрагменту
а мне нужно глобально
а это как минимум или сервис или главное активити

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Mikhail_dev » 28 авг 2014, 13:49

При создании фрагмента, храните ссылку на него. Если у вас в активности меняются ресурсы, то вызывайте метод фрагмента, в который передавайте необходимые данные, после чего фрагмент обновит свои данные

Аватара пользователя
Eternity
Сообщения: 1
Зарегистрирован: 20 окт 2014, 09:05

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Eternity » 21 окт 2014, 14:29

Всем привет.
Такой вопрос:
надо получить данные из Фрагмента в Активити, чтобы с ними работать. У меня 2 вкладки, в каждой из которых фрагмент с EditText и надо получить оттуда значения при нажатии на кнопку (кнопка в Активити)
код Активити:

Код: Выделить всё

public class MyActivity extends ActionBarActivity {

    private FragmentTabHost mTabHost;
    FragmentTab frag1;
    Fragment2 frag2;
    FragmentTransaction fTrans;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_my);
        mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
        mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);

        mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Откуда", null),
                FragmentTab.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Куда", null),
                Fragment2.class, null);

        frag1 = new FragmentTab();
        frag2 = new Fragment2();

    }

    public void onClick (View view) {
        if (view.getId() == R.id.btnSearch) {
            Fragment frag1 = getSupportFragmentManager().findFragmentById(R.layout.fragment);
            String str1 = ((EditText)frag1.getView().findViewById(R.id.et1)).getText().toString();

            Fragment frag2 = getSupportFragmentManager().findFragmentById(R.layout.fragment2);
            String str2 = ((EditText)frag2.getView().findViewById(R.id.et2)).getText().toString();

            Toast.makeText(this, str1 + "  "+ str2, Toast.LENGTH_SHORT).show();
        }
    }

}
Фрагменты отображаются при нажатии на соответствующую вкладку, заполняя FrameLayout в activity_my
вкладки работают корректно, ошибка вылазит при нажатии на кнопку.. :cry: :?

Pedro Sancez
Сообщения: 4
Зарегистрирован: 03 ноя 2014, 17:20

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Pedro Sancez » 01 дек 2014, 01:49

Всем привет! Я очень "зелёный" в андроид-программировании, по этому не обессудьте. Я не понял из вашего урока почему у меня не работает обработчик в фрагменте.Что я сделал не так?Помогите, пожалуйста!

Код: Выделить всё

public class Fragment2 extends Fragment {
     
	TextView tv;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
                                Bundle savedInstanceState) {
    	View v=inflater.inflate(R.layout.fragment2, null);
    	Button but= (Button)v.findViewById(R.id.but);
     but.setOnClickListener(new OnClickListener() {

 			@Override
 			public void onClick(View v) {
 				
 				tv.setText("Обработчик работает!");
 				
 			} });
        return v;
    }

Pedro Sancez
Сообщения: 4
Зарегистрирован: 03 ноя 2014, 17:20

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Pedro Sancez » 01 дек 2014, 02:01

И ещё маленький, но очень важный вопрос. Могут ли фрагменты взаимодействовать между собой? (наподобие активити с помощью интентов) Нужно, что бы один фрагмент динамически сменял другой в одном фреймлайауте по нажатию кнопки внутри него самого(фрагмента) без участии активити.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Foenix » 01 дек 2014, 07:44

а это определить?
TextView tv; ?
И когда " не работает" означает, что программа не падает. А если падает - то нужно предоставлять лог!
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

finberg
Сообщения: 51
Зарегистрирован: 11 мар 2013, 14:20

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение finberg » 01 дек 2014, 09:50

Pedro Sancez писал(а):И ещё маленький, но очень важный вопрос. Могут ли фрагменты взаимодействовать между собой? (наподобие активити с помощью интентов) Нужно, что бы один фрагмент динамически сменял другой в одном фреймлайауте по нажатию кнопки внутри него самого(фрагмента) без участии активити.
Ну не желательно, хотя в некоторых случаях такое можно и сделать. Фрагменты должны быть независимы. Теряется гибкость при повторном использовании.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 106. Android 3. Fragments. Взаимодействие с Activit

Сообщение Foenix » 01 дек 2014, 14:00

Pedro Sancez писал(а):И ещё маленький, но очень важный вопрос. Могут ли фрагменты взаимодействовать между собой? (наподобие активити с помощью интентов) Нужно, что бы один фрагмент динамически сменял другой в одном фреймлайауте по нажатию кнопки внутри него самого(фрагмента) без участии активити.
могут взаимодействовать через посредника-активити.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Ответить