Note that there are some explanatory texts on larger screens.

plurals
  1. POupdate TextView From Another SherlockFragment
    text
    copied!<p>I want to update TextView From Another SherlockFragment , I`m using ActionBarSherlock and this my class</p> <p><strong>MainActivity Class</strong></p> <pre><code>import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockFragmentActivity; import android.os.Bundle; import android.support.v4.view.ViewPager; public class MainActivity extends SherlockFragmentActivity { private ViewPager mViewPager; private TabsAdapter mTabsAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mViewPager = new ViewPager(this); mViewPager.setId(R.id.pager); setContentView(mViewPager); final ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); mTabsAdapter = new TabsAdapter(this, mViewPager); mTabsAdapter.addTab(bar.newTab().setText("Fragment 1"), Fragment1.class, null); mTabsAdapter.addTab(bar.newTab().setText("Fragment 2"), Fragment2.class, null); } } </code></pre> <p><strong>TabsAdapter Class</strong></p> <pre><code>import java.util.ArrayList; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.Tab; import com.actionbarsherlock.app.SherlockFragmentActivity; public class TabsAdapter extends FragmentPagerAdapter implements ActionBar.TabListener , ViewPager.OnPageChangeListener{ private final Context mContext; private final ActionBar mActionBar; private final ViewPager mViewPager; private final ArrayList&lt;TabInfo&gt; mTabs = new ArrayList&lt;TabInfo&gt;(); static final class TabInfo{ private final Class&lt;?&gt; clss; private final Bundle args; TabInfo(Class&lt;?&gt; _class, Bundle _args){ clss = _class; args = _args; } } public TabsAdapter(SherlockFragmentActivity fa, ViewPager pager) { super(fa.getSupportFragmentManager()); mContext = fa; mActionBar = fa.getSupportActionBar(); mViewPager = pager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } public void addTab(ActionBar.Tab tab, Class&lt;?&gt; clss, Bundle args){ TabInfo info = new TabInfo(clss, args); tab.setTag(info); tab.setTabListener(this); mTabs.add(info); mActionBar.addTab(tab); notifyDataSetChanged(); } @Override public void onPageScrollStateChanged(int state) { } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mActionBar.setSelectedNavigationItem(position); } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { mViewPager.setCurrentItem(tab.getPosition()); Object tag = tab.getTag(); for (int i = 0; i&lt;mTabs.size(); i++){ if (mTabs.get(i) == tag){ mViewPager.setCurrentItem(i); } } } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { //Toast.makeText(mContext, "You've deselected a tab", Toast.LENGTH_SHORT).show(); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(), info.args); } @Override public int getCount() { return mTabs.size(); } } </code></pre> <p><strong>Fragment1 Class</strong></p> <pre><code>import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.TextView; import com.actionbarsherlock.app.SherlockFragment; public class Fragment1 extends SherlockFragment{ TextView t; View view; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ view = inflater.inflate(R.layout.fragment1, container, false); t=(TextView) view.findViewById(R.id.textView1); return view; } } </code></pre> <p><strong>Fragment2 Class</strong></p> <pre><code>import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.Button; import com.actionbarsherlock.app.SherlockFragment; public class Fragment2 extends SherlockFragment{ Button b; View view; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ view = inflater.inflate(R.layout.fragment2, container, false); b=(Button) view.findViewById(R.id.button1); b.setOnClickListener(onClick); return view; } public OnClickListener onClick = new OnClickListener() { @Override public void onClick(View v) { }}; } </code></pre> <p><strong>activity_main.xml</strong></p> <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" &gt; &lt;android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/pager" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p><strong>fragment1.xml</strong> </p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" &gt; &lt;TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="112dp" android:layout_marginTop="144dp" android:text="TextView" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p><strong>fragment2.xml</strong> </p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" &gt; &lt;Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="107dp" android:layout_marginTop="103dp" android:text="Button" /&gt; &lt;/RelativeLayout&gt; </code></pre> <p>So what<code>s the code that</code>s to change the text of textView1 form Fragment2 Class </p> <pre><code>public OnClickListener onClick = new OnClickListener() { @Override public void onClick(View v) { }}; </code></pre>
 

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