Android Studio按钮未将我重定向到正确的活动

mklgxw1f  于 2022-12-13  发布在  Android
关注(0)|答案(1)|浏览(92)

所以我为我的应用做了一个主页(activity_home. xml/HomeActivity.java),并添加了4个按钮,每个按钮将用户带到一个特定的Activity,到目前为止,2个按钮工作正常,但最后两个按钮要么重新加载主页Activity,要么重新启动应用。
我所说的两个活动分别命名为(yoga3.xml/activity_yoga3.java)和(cardio2.java/activity_cardio2.xml)。
活动主页. xml:

<androidx.appcompat.widget.AppCompatButton
    android:id="@+id/buttonn3"
    android:layout_width="300dp"
    android:layout_height="79dp"
    android:layout_below="@id/buttonn2"
    android:layout_marginLeft="60dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="2dp"
    android:background="@android:color/transparent"
    android:fontFamily="@font/airstrike"
    android:onClick="cardio2"
    android:text="@string/your_string3"
    android:textColor="@color/design_default_color_error"
    android:textSize="30dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent">

</androidx.appcompat.widget.AppCompatButton>

<androidx.appcompat.widget.AppCompatButton
    android:id="@+id/buttonn4"
    android:layout_width="300dp"
    android:layout_height="79dp"
    android:layout_below="@id/buttonn3"
    android:layout_marginLeft="60dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="2dp"
    android:background="@android:color/transparent"
    android:fontFamily="@font/airstrike"
    android:onClick="yoga3"
    android:text="@string/your_string4"
    android:textColor="@android:color/holo_green_light"
    android:textSize="30dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent">

</androidx.appcompat.widget.AppCompatButton>

HomeActivity.java :

Button buttonn = (Button) findViewById(R.id.buttonn1);
Button buttonn2 = (Button) findViewById(R.id.buttonn2);
Button buttonn3 = (Button) findViewById(R.id.buttonn3);
Button buttonn4 = (Button) findViewById(R.id.buttonn4);


buttonn.setOnClickListener(v -> {
Intent intent = new Intent(this,WaterActivity.class);
startActivity(intent);
});

buttonn2.setOnClickListener(v -> {
    Intent intent = new Intent(this,Bodybuilding.class);
    startActivity(intent);
});

buttonn3.setOnClickListener(v -> {
    Intent intent = new Intent(this,cardio2.class);
    startActivity(intent);
});

buttonn4.setOnClickListener(v -> {
    Intent intent = new Intent(this,yoga3.class);
    startActivity(intent);
});

我将按钮更改为另一项活动,它工作,但当我将其更改回yoga 3和cardio 2时,它不工作

8mmmxcuj

8mmmxcuj1#

恭喜你的第一个问题!听起来像一个恼人的问题,希望下面的一些会有所帮助。
根据有限的信息,我猜是XML中的onClick属性。这应该是一个方法名,在调用setContentView的活动上有特定的签名。这些函数可能会给你带来麻烦,或者因为它们不存在而崩溃?(参考How exactly does the android:onClick XML attribute differ from setOnClickListener?
崩溃可以在快速重启中表现出来,但是你说logcat中没有错误。如果我是你,我会仔细检查,确保删除所有过滤器并启用详细日志记录。
即使过滤器后面没有隐藏任何错误,您也应该会找到ActivityManager日志(不确定确切的日志标记),说明当您单击时启动了哪些Activity,或者只是给出警告或调试信息,这应该会让您更接近解决方案。
还要仔细检查这些ID是否有重复的+id/定义,也许findViewById找到的视图与您预期的不同?
如果这些没有帮助,请更新问题,包括所有4个活动启动、每个活动的视图XML以及不以其精确形式工作的代码,此外,请显示play main和4个已启动活动中每个活动的AndroidManifest.xml条目,因为singleTop或类似标志也可能会干扰启动。

相关问题