早上好
我想提出快速编码查询。
我已经分配了一个在Android Studio上生成应用程序的任务,该应用程序有两个按钮,每个按钮在单击时都应该加载新页面。
我们书中的这一章介绍了如何通过一个按钮进行此操作,但是我认为可能会有一个不同的设置(使用两个按钮)?
无论如何,这只是我们班上的第二次作业,因此我对所有这些工作原理的理解并不遥远。该课程是一门独立学习课程,因此我正在自学。并非总是最简单的事情。
无论如何,这就是我所拥有的:
MainActivity.java
package com.example.thelatestmusicscene;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.buttonOne);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, MusicNewsOne.class));
}
});
Button button2 = (Button) findViewById(R.id.buttonTwo);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, MusicNewsTwo.class));
}
});
}
}
我相信这是与我的问题有关的唯一文件,但是如果您也需要查看其他文件,可以将其发布。
第一个按钮功能正常,但是当我尝试使用第二个按钮时,应用程序停止工作。我在网上看到了一些解释,但是我发现关于加载其他页面的一些解释使我的代码出现了很多错误。
注意:这是我们从书中看到的方法,但是我只想替代方法。
此应用程序的所有其他操作都已完成,只是链接到我正在步履蹒跚的第二个Java页面。如果您知道一种更好的方式来布置代码,这是我耳熟能详的,或者您可以将我链接到可以教我知识的资源,则将不胜感激。
好的,这将是令人困惑的部分。当我为该类下载Android Studio时,我再也无法运行任何仿真器了。我也发布了这个问题,直到今天,这个问题仍然没有得到答案。如果您有解决方案,或者想查看我尝试过的细节,请转到此处: https://superuser.com/questions/1394568/android-studio-and-haxm-installation
最终,我可以编写代码,但无法对其进行测试。但是,我找到了一种在自己的智能手机上运行这些应用程序以测试它们是否运行的方法。让Android Studio构建APK文件,然后让我的手机运行该应用。 现在……关于错误。没有了。 Android Studio一无所获。就其而言,一切都很好。当我在手机上加载该应用程序并单击第二个按钮时,该应用程序将关闭,并显示“很遗憾,nameOfApp已停止。”
这就是我找到自己的地方。
这是XML(假设您是指AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.thelatestmusicscene">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MusicNewsTwo">
</activity>
<activity android:name=".MusicNewsOne" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我现在必须去睡觉,但是如果可以的话,我今天将尝试从手机中检索崩溃报告。
答案 0 :(得分:0)
有两种方法可以执行此操作,如您正在执行的那样启动一个新的活动,另一种是通过使用一个活动,您可以根据需要将片段尽可能多地发布到同一活动上,即1,2 3等。 。here is the link for fragments,但您的病很大,建议您从活动开始,并了解活动生命周期。 you can find here。此外,告诉我您遇到了什么错误,要查找错误,请在android studio底部选择选项(Logcat)单击它。并查看错误并将其粘贴到注释中。
答案 1 :(得分:0)
少量笔记
.xml
文件可能出了什么问题
遇到的常见问题之一:
假设您只是从班级中复制了它,则可能会遇到错误,指出MusicNewsTwo.class
中未声明AndroidManifest.xml
,请执行以下操作:
可能是什么解决方案
<application
android:label="Example APp"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name="package.path.to.MusicNewsOne">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Add this activity if missing -->
<activity
android:name="package.path.to.MusicNewsTwo"/>
</application>
只要您考虑答案的 少量笔记 部分,我就会更新答案,否则,如果我已经将您的答案与此答案一起写了,注释掉。
答案 2 :(得分:0)
兄弟您的MainActivity.java文件具有正确的代码。 请在xml和java文件中检查按钮名称,然后检查清单文件“ MusicNewsTwo”作为活动添加。
并确保将Java和xml文件放在正确的位置。
答案 3 :(得分:0)
在手机内部发现了问题。事实证明,这是下载第三方应用程序的权限错误;我的代码实际上是完美的。感谢所有建议。
答案 4 :(得分:0)
我认为IDs
中views
的{{1}}与您在layout : "activity_main"
文件中使用的