【android studio使用Fragment点击不同按钮切换不同界面】

android studio使用Fragment点击不同按钮切换不同界面

在Android Studio中创建Module,在该module中实现本实例,具体步骤如下:
(1)在新建的module的res/layout目录下面添加布局文件activeity_miana.xml。将局部管理器设置为相对布局管理器(我一开始没有设置为相对布局管理器,然后这个容器就没有设置边界,所以它默认位置(0,0)放置。)并将TextView组件删除,然后在布局管理器中添加一个Fragment组件,并为其设置ID属性,在Fragment组件下方再添加一个水平线性布局管理器,并设置其显示在容器底部,最后在水平线性布局管理器中添加布局宽度相同的ImageView,将它们的layout_weight属性均设置为1。具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent" android:layout_height="match_parent"
    tools:context="com.mingrisoft.tabfragment.MainActivity">

    <fragment
        android:id="@+id/fragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:name="com.mingrisoft.tabfragment.ErShiSi_Fragment"
       />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal"
        >


    <ImageView
        android:id="@+id/image1"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:src="@drawable/ershisi" />

    <ImageView
        android:id="@+id/image2"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:src="@drawable/faxian" />

    <ImageView
        android:id="@+id/image3"
        android:layout_width="0dp"
        android:layout_height="50dp"
        android:layout_weight="1"
        android:src="@drawable/wo" />
    </LinearLayout>

</RelativeLayout>

(2)在res/layout目录下创建一个布局文件faxian_fragment.xml,并且将默认创建的线性布局管理器修改为相对布局管理器。然后在该布局文件中添加一个ImageView组件,用于存放要显示的图片。具体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/faxian1"
        android:scaleType="fitXY"/>
</RelativeLayout>

(3)在工具窗中的Java节点的第一个com.mingrisoft包中,创建一个FanXian_Fragment的类,让这个类继承Fragment类,并且重写onCreateView()方法,然后为FanXianFragment添加faxian_fragment.xml布局文件,具体代码如下:

package com.mingrisoft.tabfragment;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by Administrator on 2022/3/18.
 */

public class FaXian_Fragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=inflater.inflate(R.layout.faxian_fragment,null);
        return view;
    }
}

参照步骤(2)和(3),再创建几个Fragment类和几个相对应的布局文件,分布用于实现其他界面。
(4)打开默认创建的MainActivity,让MainActivity直接继承Activity,获取布局文件中的Tab标签图片,并且为每一张图片设计单击事件监听器,然后通过switch语句判断单击哪张导航图片,并创建相应的Fragment替换原有的Fragment,具体代码如下:

package com.mingrisoft.tabfragment;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activeity_miana);
        ImageView imageView1 = (ImageView) findViewById(R.id.image1);
        ImageView imageView2 = (ImageView) findViewById(R.id.image2);
        ImageView imageView3 = (ImageView) findViewById(R.id.image3);
        imageView1.setOnClickListener(l);
        imageView2.setOnClickListener(l);
        imageView3.setOnClickListener(l);

    }
    View.OnClickListener l=new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            FragmentManager fm=getSupportFragmentManager();
            FragmentTransaction ft=fm.beginTransaction();
            Fragment f=null;
            switch (view.getId()){
                case R.id.image1:
                    f=new ErShiSi_Fragment();
                    break;
                case R.id.image2:
                    f=new FaXian_Fragment();
                    break;
                case R.id.image3:
                    f=new Wo_Fragment();
                    break;
                default:
                    break;

        }
        ft.replace(R.id.fragment,f);
        ft.commit();
    }


    };

}

在这里插入图片描述

初学者,还有很多需要完善的地方。发现不足之处,望谅解。也希望大家给出更好的想法。谢谢!

Android Studio中,你可以通过设置按钮的监听器(OnClickListener)并配合ImageView组件来实现点击按钮切换两个图片的功能。以下是步骤概述: 1. **创建布局文件**:首先,在XML布局文件中添加两个ImageView,分别用于显示不同的图片资源,并给每个ImageView设置一个唯一的id,如`image_view1`和`image_view2`。 ```xml <ImageView android:id="@+id/image_view1" android:src="@drawable/picture1" /> <ImageView android:id="@+id/image_view2" android:src="@drawable/picture2" /> ``` 2. **绑定按钮**:在包含这两个ImageView的LinearLayout或FrameLayout中,添加一个Button。设置Button的`android:onClick="switchImages"`属性,引用对应的Activity或Fragment中的方法来处理点击事件。 ```xml <Button android:id="@+id/button_switch" android:text="Switch Images" android:onClick="switchImages" /> ``` 3. **编写Java或Kotlin代码**:在对应的Activity或Fragment的`onCreateView`、`onResume`等生命周期方法中,为`switchImages`方法编写逻辑。例如,可以使用`image_view1.setImageResource(imageResourceId1)`和`image_view2.setImageResource(imageResourceId2)`来切换图片。 ```java public void switchImages(View view) { int currentImageId = image_view1.getDrawable().getConstantState() != null ? image_view1.getDrawable().getConstantState().getResourceId() : -1; if (currentImageId == imageResourceId1) { image_view1.setImageResource(imageResourceId2); image_view2.setImageResource(imageResourceId1); } else { image_view1.setImageResource(imageResourceId1); image_view2.setImageResource(imageResourceId2); } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值