我有一个带有FragmentPagerAdapter的FragmentActivity,它包含许多Fragment对象,我可以通过水平滑动来滑动它们。
我想知道我是否可以从Fragment对象中访问FragmentActivity中的元素(“elementToBeChanged”)?我想将一个String从Fragment类传递给FragmentActivity对象中的TextView元素。
public class GalleryPagerActivity extends FragmentActivity implements OnClickListener {
private TextView elementToBeChanged;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.gallery_pager);
elementToBeChanged = (TextView) findViewById(R.id.tvTop);
elementToBeChanged.setOnClickListener(this);
}
}
我该怎么做?每当Fragment对象进入视线时(通过滑动),都必须更新TextView元素。
看起来应该是这样的:
public class GalleryFragment extends Fragment {
private FragmentActivity fa;
private LinearLayout ll;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
fa = super.getActivity();
ll = (LinearLayout) inflater.inflate(R.layout.gallery_fragment, container, false);
...
// ////////
// UPDATE THE "TextView elementToBeChanged" object in the parent FragmentActivity class HERE WHENEVER THIS FRAGMENTS BECOMES ACTIVE/VISIBLE...
// ////////
return ll;
}
答案 0 :(得分:10)
在您的GalleryPagerActivity中创建一个函数,例如updateTextView(String text)。该函数将TextView
设置为输入值。然后在您的GalleryFragment中,只需调用此函数,并将文本显示为:
((GalleryPagerActivity)getActivity()).updateTextView("my text");