我有一个像这样的 fragment
public class PagesFragment extends Fragment {
public PagesFragment(){}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.section, container, false);
return v;
}}
我想设置六个按钮来打开六个相应的 xml 布局。如果有一种方法可以在不设置六种不同 Activity 的情况下做到这一点,我很想知道。
XML:
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:background="#ffffff"
android:clickable="true">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff">
<ImageButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/art"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/art"
android:layout_gravity="center_horizontal|bottom"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#ffffff"
/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/ext"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/ext"
android:layout_below="@+id/art"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#ffffff"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/inter"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/inter"
android:layout_below="@+id/ext"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#ffffff"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sport"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/sport1"
android:layout_below="@+id/inter"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#ffffff"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/opp"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/opp"
android:layout_below="@+id/sport"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#ffffff"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/muse"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/muse"
android:layout_below="@+id/opp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#ffffff"/>
</RelativeLayout>
</ScrollView>
提前谢谢您。
最佳答案
fragment 是必经之路。 创建一个 Activity (ExampleActivity),其布局包含将由 fragment 动态替换的 FrameLayout (id=example_id)。
//inner xml of Example Activity Layout
<FrameLayout
android:id="@+id/example_id"
android:layout_width="match_parent"/>
当从按钮启动 Intent 到ExampleActivity时,传递有关您想要使用的 fragment 的信息(可能是要在工厂中使用的字符串,以便您可以实例化正确的 fragment )。然后在 Activity 上:
Fragment fragment;
//choose the fragment from intent data
fragment = createFragmentFromIntent(intent);
FragmentManager fragmentManager = getChildFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(example_id, fragment);
fragmentTransaction.commitAllowingStateLoss();
希望有帮助。
关于java - 在 fragment 中设置多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310625/