[英]TextView in a viewpager
我有一個包含多個fragments
的ViewPager
Activity
。 現在如何在其中一個fragments
訪問TextView
來從主要activity
更改其文本? 我嘗試了多種方法,但都以錯誤結束,這是My headerAdapter
public class HeaderAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public HeaderAdapter(FragmentManager fm,List<Fragment> fragments) {
super(fm);
this.fragments=fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
我的header.xml包含一個imageview和一個文本視圖,如下所示:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fj"
android:textColor="#ff0000"
android:textSize="100dp"
android:text="aaa"
/>
<ImageView
android:alpha="0.7"
android:layout_width="wrap_content"
android:layout_height="203dp"
android:id="@+id/head1"
android:scaleType="fitXY"
android:src="@drawable/dash_widget_0"/>
</RelativeLayout>
我的視圖尋呼機是這樣的:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1">
<android.support.v4.view.ViewPager
android:layout_width="wrap_content"
android:layout_height="203dp"
android:id="@+id/header_pager"
>
</android.support.v4.view.ViewPager>
在mainActivity
我需要改變textView
?
您不應該從活動訪問textview。 這將在以后很難理解,並且還會導致代碼完全混亂。
您應該做的是實現在片段內部完成工作的公共方法。 可以通過調用(YOUR_FRAGMENT_TYPE)HeaderAdapter#getItem(index)
以一種非常簡單的方式來訪問此方法。 為了避免類型轉換時出現異常,請使用instanceOf
檢查Fragment。
即使使用它們可能是實現您正在執行的操作的更好方法。 您可以使用此方法從視圖分頁器中獲取對片段的引用
private Fragment getFragmentFromPager(int index) {
return getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.header_pager + ":" + index);
}
只需在Fragment中保留對TextView的公共引用,以便您可以訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.