Android Studio:使按钮打开下一个活动
Posted
技术标签:
【中文标题】Android Studio:使按钮打开下一个活动【英文标题】:Android Studio: Make a Button open Next Activity 【发布时间】:2017-12-17 02:24:16 【问题描述】:我正在尝试制作一个包含 MainActivity 页面并可以打开另一个活动的应用程序:Main2Activity。
这是我在 activity_main.xml 页面上的按钮代码
<Button
android:id="@+id/button"
android:layout_
android:layout_
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:onClick="goToMain2Activity"
android:text="Connect"
android:textSize="20sp"
这是在 MainActivity.java 页面中转到新活动的方法:
public void goToActivity2(View view)
Intent intent = new Intent(this, Main2Activity.class);
startActivity(intent);
我也在清单中声明了它
<activity android:label="@string/app_name"
android:name="NextActivity"/>
我无法在我的模拟器中打开应用程序,所以我不确定它是否正常工作。我的 Activity 类出现错误,不允许它打开,但我的代码是否正确以使按钮工作?我是编码新手。
编辑: 这是我的清单文件的副本。如果不正确,我不确定如何声明第二个活动。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fonephree.fonephree">
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".Main2Activity"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity">
</meta-data>
</activity>
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
应用程序打开,但当我单击按钮时,它会将我带到主屏幕,但没有图像。
【问题讨论】:
将android:onClick="goToMain2Activity"
更改为android:onClick="goToActivity2"
。它应该与您在课堂上使用的名称相同。
【参考方案1】:
在 MainActivity.java 中,您的方法应该与您在 onClick 属性中创建的名称相匹配。所以它应该看起来像这样:
public void goToMain2Activity(View view)
Intent intent = new Intent (this, Main2Activity.class);
startActivity(intent);
【讨论】:
另外,如果没有声明,请在清单中声明 Main2Activity。 你是对的。我只是没有包括在内,因为我认为 OP 故意将其遗漏了 :) 我想我在 Manifest 中声明了它,但我不确定正确的代码是什么。有什么帮助吗? 您可以编辑您的问题并发布整个清单文件吗? 无法运行您的应用程序,您的清单看起来不错。我也看到你接受了我的回答,请随时投票!【参考方案2】:将 xml 代码中的这一行 android:onClick="goToMain2Activity"
更改为 android:onClick="goToActivity2"
原因:在 Button 中声明了错误的函数名。
【讨论】:
【参考方案3】:对于 xml 文件中的 android:onClick=" ”,活动名称应与您的 java 文件中调用的方法名称相同。 更改 android:onClick="goToActivity2"
【讨论】:
以上是关于Android Studio:使按钮打开下一个活动的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Kotlin 中创建一个打开新活动(Android Studio)的按钮?
Flyout的“轻度解雇”需要2个点击才能打开下一个弹出窗口