所以我为我的应用做了一个主页(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时,它不工作
1条答案
按热度按时间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或类似标志也可能会干扰启动。