为什么我的片段在我单击按钮以切换片段时不起作用?

问题描述 投票:2回答:1

我正在尝试创建两个片段并将其插入片段容器中,同时使用两个按钮控制它们。没有错误,只是它不起作用..... enter image description here

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

activity_main.xml

    <Button
        android:id="@+id/signinButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:onClick="ChangeFragment"
        android:text="@string/sign_in"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.684"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/minikanikoTextView" />

    <Button
        android:id="@+id/signUpButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:layout_marginBottom="27dp"
        android:onClick="ChangeFragment"
        android:text="@string/sign_up"
        app:layout_constraintBottom_toTopOf="@+id/fragment_container"
        app:layout_constraintEnd_toEndOf="@+id/signinButton"
        app:layout_constraintHorizontal_bias="0.479"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/minikanikoTextView"
        app:layout_constraintVertical_bias="0.195" />

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="414dp"
        android:layout_height="516dp"
        android:layout_marginTop="25dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.666"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/signinButton"
        app:layout_constraintVertical_bias="1.0">

    </FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

主要是我认为问题出在MainActivity中

MainActivity.java

package com.example.testonli;

import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    public void ChangeFragment(View view){
        Fragment fragment;
        if(view == findViewById(R.id.signinButton)){
            fragment = new SigninFragment();
            FragmentManager fm = getFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            ft.replace(R.id.fragment_container, fragment);
            ft.commit();
        }
        if(view == findViewById(R.id.signUpButton)){
            fragment = new SignupFragment();
            FragmentManager fm = getFragmentManager();
            FragmentTransaction ft = fm.beginTransaction();
            ft.replace(R.id.fragment_container, fragment);
            ft.commit();

        }
    }

}

我正在尝试创建两个片段并将其插入片段容器中,同时使用两个按钮控制它们。没有错误,只是它不起作用..... ...

android android-studio android-fragments android-fragmentactivity
1个回答
1
投票

不要将视图作为对象进行比较。

© www.soinside.com 2019 - 2024. All rights reserved.