我的项目ViewPage中有一个包含两个片段(FragmentView1和FragmentView2)。
这是我的ViewPage MainActivity,它有一个带菜单的ActionBar。
在此菜单中,每个选项都应调用FragmentView1中的方法来更新它。
但我真的不知道该怎么做!
这是我的FragmentView1中的方法:
public void loadPoema(){
// my code here
}
这是我从我的活动中调用的地方:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.actBack:
postAtual--;
// Here I call the method in FragmentView1
return true;
default:
return super.onOptionsItemSelected(item);
}
}
要了解FragmentView1中有问题的方法,可以更新它(非常片段)加载新数据。
再次为我的级别道歉,我正在使用Google Translator
修改
MainActivity XML:
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<android.support.v4.view.PagerTabStrip
android:id="@+id/pagerTabStrip"
android:layout_gravity="bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#cccccc"/>
</android.support.v4.view.ViewPager>
</LinearLayout>
片段XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/activity_horizontal_margin"
android:id="@+id/fragPoema"
android:orientation="vertical" >
<TextView
android:id="@+id/txtTitulo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="#0099FF"
android:typeface="serif" />
<TextView
android:id="@+id/txtPoema"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:textColor="#333333"
android:layout_gravity="center"
android:scrollbars="vertical"
android:typeface="serif" />
</LinearLayout>
和MainActivity代码:
private void loadViews(){
mViewPager = (ViewPager) findViewById(R.id.viewpager);
TitleAdapter titleAdapter = new TitleAdapter(getSupportFragmentManager());
mViewPager.setAdapter(titleAdapter);
mViewPager.setCurrentItem(0);
}
答案 0 :(得分:1)
当您需要片段时,可以使用findFragmentByTag获取对它的引用,然后对其执行操作。确保您最初为片段添加标签。它既可以来自代码,也可以来自XML。
编辑:我现在看到您正在使用寻呼机适配器来创建片段。这有点棘手。按照这篇文章提取您正在创建的片段的Tag
。
reusing fragments in a fragmentpageradapter