我有一个像这样划分的页面:有#34; Main"包含片段的布局
<fragment
android:name="com.x.x.FirstFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/firstFragment"
tools:layout="@layout/first_fragment" />
在外部布局中的片段中,我创建了一个像这样的TabHost:
<TabHost
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tabHost">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/first"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:name="com.x.x.First"
tools:layout="@layout/first" />
<fragment
android:id="@+id/second"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:name="com.x.x.Second"
tools:layout="@layout/second" />
</FrameLayout>
</LinearLayout>
</TabHost>
问题是我需要在&#34; First&#34;内部运行一个方法。当一个按钮进入&#34; Main&#34;已点击课程。
我从昨天开始就一直在努力解决这个问题,有什么办法吗?
谢谢。
答案 0 :(得分:0)
只需使用此代码,即可从Main.class调用First.class的方法。 在Main.class中
new First.method();
答案 1 :(得分:0)
您应该在First片段中定义一个公共方法,并在MainACtivity上的按钮时调用。如果要更新某个片段的UI元素,请注意当前显示的片段。
同样,您的活动可以通过使用findFragmentById()或findFragmentByTag()从FragmentManager获取对Fragment的引用来调用片段中的方法。
答案 2 :(得分:0)
从您的Activity中获取Fragment并调用方法。
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.first);
if(fragment != null){
((First)fragment).yourMethod();
}