java - 在 fragment 中设置多个按钮

标签 java android xml button

我有一个像这样的 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/

相关文章:

java - 三元条件导致 Java 中奇怪的 CPU 使用率

java - 列表问题

java - 如何为.net应用程序制作javaservice?

android - 无法在应用程序类型gradle文件中同时添加com.anjlab.android.iab.v3:library和com.android.billingclient:billing

android - 从 Intent 启动 Instrumentation 测试

xml - 在 XSLT 转换期间取消转义

c# - 删除 xml 节点 -Xelement

java - 为什么我不能部署包含一些外部 jar 文件的 java webservice ..?

javascript - 在 Android HTML5 播放器中开始播放所需的用户手势

java - Unmarshalexception 意外元素,预期元素是(无)