Note that there are some explanatory texts on larger screens.

plurals
  1. POCommunication between Fragments in ViewPager
    primarykey
    data
    text
    <p>I'm trying to do this: <a href="http://android-er.blogspot.com/2012/06/communication-between-fragments-in.html" rel="noreferrer">http://android-er.blogspot.com/2012/06/communication-between-fragments-in.html</a> Except that I'm using a FragmentStatePagerAdapter</p> <p>I have an <strong>Activity</strong> with two fragments(<strong>FragmentA</strong> &amp; <strong>FragmentB</strong>)</p> <p>FragmentA has an edittext and a button, FragmentB has a textview</p> <p>Now all I want is that whenever I enter something in the edittext and click the button, that something will appear on my textview.</p> <p><strong>MainActivity:</strong></p> <pre><code>public class MainActivity extends FragmentActivity { ViewPager viewPager = null; String TabFragmentB; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager)findViewById(R.id.pager); FragmentManager fragmentManager = getSupportFragmentManager(); viewPager.setAdapter(new MyAdapter(fragmentManager)); } public class MyAdapter extends FragmentStatePagerAdapter { public MyAdapter (FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { Fragment fragment = null; if (i == 0) { fragment = new FragmentA(); } if (i == 1) { fragment = new FragmentB(); } return fragment; } @Override public int getCount() { return 2; } } public void setTabFragmentB(String t) { TabFragmentB = t; } public String getTabFragmentB() { return TabFragmentB; } } </code></pre> <p><strong>FragmentA:</strong></p> <pre><code>public class FragmentA extends Fragment { EditText et; Button bt; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fraga, container, false); et = (EditText)v.findViewById(R.id.edit1); bt = (Button)v.findViewById(R.id.button1); bt.setOnClickListener(Click); return v; } OnClickListener Click = new OnClickListener(){ @Override public void onClick(View v) { String textPassToB = et.getText().toString(); String TabOfFragmentB = ((MainActivity)getActivity()).getTabFragmentB(); FragmentB fragmentB = (FragmentB)getActivity() .getSupportFragmentManager() .findFragmentByTag(TabOfFragmentB); fragmentB.updateText(textPassToB); } }; } </code></pre> <p><strong>FragmentB:</strong></p> <pre><code>public class FragmentB extends Fragment { TextView tv; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragb, container, false); tv = (TextView)v.findViewById(R.id.text1); String myTag = getTag(); ((MainActivity)getActivity()).setTabFragmentB(myTag); return v; } public void updateText(String t){ tv.setText(t); } } </code></pre> <p><strong>LogCat:</strong></p> <pre><code>FATAL EXCEPTION: main java.lang.NullPointerException at lmf.sample1.FragmentA$1.onClick(FragmentA.java:43) at android.view.View.performClick(View.java:4212) at android.view.View$PerformClick.run(View.java:17476) at android.os.Handler.handleCallback(Handler.java:800) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5371) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) </code></pre> <p>Whenever I click the button on my first fragment, my app crashes. What the hell is the problem?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload