java - 拥有多个按钮会使我的应用程序崩溃
问题描述
我目前正在 Android Studio 上创建一个应用程序。
我使用不同的按钮(在同一个活动中)去不同的活动。问题是,只需一个按钮,一切都可以工作,但是当我添加另一个按钮时,模拟器会崩溃。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
defineButtons();
}
public void defineButtons() {
findViewById(R.id.next1).setOnClickListener(buttonClickListener);
findViewById(R.id.next2).setOnClickListener(buttonClickListener);
findViewById(R.id.next3).setOnClickListener(buttonClickListener);
}
private View.OnClickListener buttonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.next1:
Intent Next1 = new Intent (Start.this, Next1.class);
startActivity(Next1);
break;
case R.id.next2:
Intent Next2 = new Intent (Start.this, Next2.class);
startActivity(Next2);
break;
case R.id.next3:
Intent Next3 = new Intent (Start.this, Next3.class);
startActivity(Next3);
break;
}
}
};
这里是 XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Start"
android:background="@drawable/background">
<TextView
android:layout_width="match_parent"
android:layout_height="700px"
android:id="@+id/statement"
android:text="TEXT1"
android:background="@drawable/button_border"
android:textColor="#000000"
android:alpha="0.95"
android:layout_marginHorizontal="70px"
android:layout_marginTop="180px"
android:gravity="center"
android:paddingHorizontal="50px"
android:textSize="16sp"
/>
<Button
android:id="@+id/next1"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="match_parent"
android:layout_height="150px"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="160dp"
android:layout_marginHorizontal="70px"
android:alpha="0.9"
android:background="@drawable/button_border"
android:text="TEXT2"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textAllCaps="false"/>
<Button
android:id="@+id/next2"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="match_parent"
android:layout_height="150px"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="90dp"
android:layout_marginHorizontal="70px"
android:alpha="0.9"
android:background="@drawable/button_border"
android:text="TEXT3"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textAllCaps="false"/>
<Button
android:id="@+id/next3"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="match_parent"
android:layout_height="150px"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:layout_marginHorizontal="70px"
android:alpha="0.9"
android:background="@drawable/button_border"
android:text="TEXT4"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textAllCaps="false"/>
</RelativeLayout>
我知道这很混乱,我是编程新手。
解决方案
您的代码非常好,您只需要像这样在清单文件中声明 Next2 和 Next3 活动
<activity android:name=".Next2"
android:screenOrientation="portrait"/>
<activity android:name=".Next3"
android:screenOrientation="portrait"/>
Android 从清单文件中读取您的应用组件,请参阅此链接了解更多详细信息https://developer.android.com/guide/topics/manifest/manifest-intro
推荐阅读
- node.js - 带有 Angular 5 应用程序的 Azure 部署选项无法在持续集成中编译和构建
- javascript - 如何比较数组中的连续日期/时间项并根据特定时间进行过滤
- sql - 如何创建将在聊天中返回单个消息的过程
- c - 带字符的免费结构数组**
- r - 在 R 中有条件地使用滞后值
- d3.js - Leaflet.js 上的自定义坐标和轴范围
- javascript - jQuery插件 - 初始化后更新元素
- java - 将不同的两个图像添加到 Firebase 实时数据库
- reactjs - 如何使用 reactjs 动态生成一对输入字段
- node.js - 为什么我从运行指向 Angular 应用程序的 /dist 文件夹的节点服务器得到一个空白页面?