title: Setting text to a textview inside a fragment
body: <p>I have a listview in one fragment and a textview in another fragment. I have to display the square of the number in the listview in the textview. However, I am getting Zero no matter what and the text doesn't change even on click of an item in the list.</p>
  
  <p>Here is the code...</p>
  
  <p>MainActivity.Java</p>
  
  <pre><code>package com.example.fragmentdemo;
  
  public class MainActivity extends Activity implements Prime.onItemListSelectedListener{
  
      boolean mDualPane;
      int n;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
          // Check that the activity is using the layout version with
          // the fragment_container FrameLayout
          if (findViewById(R.id.fragment_container) != null) {
  
              // However, if we're being restored from a previous state,
              // then we don't need to do anything and should return or else
              // we could end up with overlapping fragments.
              if (savedInstanceState != null) {
                  return;
              }
  
              Prime fragmentPrime = new Prime();
              fragmentPrime.setArguments(getIntent().getExtras());
              getFragmentManager().beginTransaction()
              .add(R.id.fragment_container, fragmentPrime).commit();
          }
  
  
          Square square = (Square) getFragmentManager().findFragmentById(R.id.fragment_content_2);
  
          if(square != null)
          {
              // In Dual Pane Mode
  
              square.setSquare(n);
          }
  
          else
          {
              Square newFragment = (Square) getFragmentManager().findFragmentById(R.id.fragment_content_2);
  
              Bundle args = new Bundle();
              args.putInt("number", n);
              newFragment.setArguments(args);
  
              FragmentTransaction transaction = getFragmentManager().beginTransaction();
  
              // Replace whatever is in the fragment_container view with this fragment,
              // and add the transaction to the back stack so the user can navigate back
              transaction.replace(R.id.fragment_container, newFragment);
              transaction.addToBackStack(null);
  
              // Commit the transaction
              transaction.commit();
  
          }
  
      }
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.activity_main, menu);
          return true;
      }
  
      @Override
      public void onItemSelected(int number) {
          // TODO Auto-generated method stub
  
          n = number;
      }
  
  }
  </code></pre>
  
  <p>Prime.Java - First Fragment</p>
  
  <pre><code>package com.example.fragmentdemo;
  
  public class Prime extends Fragment{
  
      ArrayList&lt;String&gt; alPrime = new ArrayList&lt;String&gt;();
      ArrayAdapter&lt;String&gt; ad;
  
      onItemListSelectedListener mCallback;
  
      public interface onItemListSelectedListener{
          public void onItemSelected(int number);
      }
  
  
      @Override
      public void onAttach(Activity activity) {
          // TODO Auto-generated method stub
          super.onAttach(activity);
  
  
          // This makes sure that the container activity has implemented
          // the callback interface. If not, it throws an exception
          try {
              mCallback = (onItemListSelectedListener) activity;
          } catch (ClassCastException e) {
              throw new ClassCastException(activity.toString()
                      + " must implement onItemListSelectedListener");
          }
      }
  
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
          // TODO Auto-generated method stub
  
          View view = inflater.inflate(R.layout.fragment_prime_list, container, false);   
  
          setNumbers();
  
          final ListView lv = (ListView) view.findViewById(R.id.lvPrime);
          ad = new ArrayAdapter&lt;String&gt;(getActivity(), android.R.layout.simple_list_item_1, alPrime);
          lv.setAdapter(ad);
  
          lv.setOnItemClickListener(new OnItemClickListener() {
  
              @Override
              public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2,
                      long arg3) {
                  // TODO Auto-generated method stub
  
                  mCallback.onItemSelected(Integer.parseInt(lv.getItemAtPosition(arg2).toString()));
              }
          });
  
          return view;
      }
  
      private void setNumbers() {
          // TODO Auto-generated method stub
          // Will replace this code with the logic of Prime Numbers later
          for(int i = 2; i &lt;= 10; i++)
          {
              alPrime.add(String.valueOf(i));
          }
      }
  
  }
  </code></pre>
  
  <p>Square.Java - Second Fragment</p>
  
  <pre><code>package com.example.fragmentdemo;
  
  public class Square extends Fragment{
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
          // TODO Auto-generated method stub
  
          View view = inflater.inflate(R.layout.fragment_prime_list, container, false);
          return view;
      }
  
      public void setSquare(int number)
      {
             // The toast displays zero
          Toast.makeText(getActivity(), String.valueOf(number), Toast.LENGTH_LONG).show();
          TextView txtSquare = (TextView) getView().findViewById(R.id.txtViewSquare);
          int square = number * number;
  
      txtSquare.setText(String.valueOf(square));      
      }
  
  }
  </code></pre>