Java 如何通过单击按钮打开新活动?
我最近开始在Eclipse中编写代码,但我还没有做多少工作,所以这或多或少是我的第一个应用程序。我试着制定我的学校时间表,很简单:第一个活动显示5个按钮,每个按钮指向一个新的活动(周一到周五) 我该如何做才能在我点击某个按钮时弹出一个新的活动(比如周一) 我已经在这里看到了数百个这样的问题,但我就是不明白。如果我仍然不知道发生了什么,从这里复制并粘贴代码是没有用的。我知道我必须创建一个新的意图和按钮列表,但我不明白它的目的和接下来要做什么 有没有人能尽可能详细地向我解释一下,使用按钮在活动之间切换到底是如何工作的,以及如何实际操作的 我有:Java 如何通过单击按钮打开新活动?,java,android,android-activity,Java,Android,Android Activity,我最近开始在Eclipse中编写代码,但我还没有做多少工作,所以这或多或少是我的第一个应用程序。我试着制定我的学校时间表,很简单:第一个活动显示5个按钮,每个按钮指向一个新的活动(周一到周五) 我该如何做才能在我点击某个按钮时弹出一个新的活动(比如周一) 我已经在这里看到了数百个这样的问题,但我就是不明白。如果我仍然不知道发生了什么,从这里复制并粘贴代码是没有用的。我知道我必须创建一个新的意图和按钮列表,但我不明白它的目的和接下来要做什么 有没有人能尽可能详细地向我解释一下,使用按钮在活动之间切
- MainActivity.java
- 星期一.java
- 5个按钮(按钮1-5)
那么,我该如何编码按钮1以从MainActivity.java切换到Monday.java?您应该做的是创建一个
意图
,它将触发您的活动
您可以通过以下代码来实现:
startActivity(new Intent(YourCurrentActivity.this, Monday.class));
您必须在每个按钮上触发不同的意图
,以创建相应的活动
。
当然,不要忘了在清单文件中声明您的
活动
。您应该做的是创建一个意图
,它将触发您的活动
您可以通过以下代码:
startActivity(new Intent(YourCurrentActivity.this, Monday.class));
您必须在每个按钮上触发不同的意图
,以创建相应的活动
。
当然,不要忘记在清单文件中声明您的
活动。首先向每个按钮的XML元素添加android:onClick=“onClick”
。这将使按钮在触发onClick事件时执行onClick
方法
然后在MainActivity
类中添加以下方法:
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// Monday
Intent intent = new Intent(MainActivity.this, Monday.class);
startActivity(intent);
break;
case R.id.button2:
// Tuesday
Intent intent = new Intent(MainActivity.this, Tuesday.class);
startActivity(intent);
break;
// the rest of the buttons go here
default: Log.e("YourTAG", "Default in onClick hit!");
break;
}
}
因此,每次在五个按钮中的任何一个上出现onClick
事件时,上面的onClick
方法都会执行,参数表示您刚才单击的视图
重新聚集意图的细节及其工作方式
正如@Edward所指出的,不要忘记将新活动添加到AndroidManifest.xml文件的应用程序元素下,例如:
<activity android:name=".Monday" android:label="@string/app_name"></activity>
首先向每个按钮的XML元素添加android:onClick=“onClick”
。这将使按钮在触发onClick事件时执行onClick
方法
然后在MainActivity
类中添加以下方法:
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
// Monday
Intent intent = new Intent(MainActivity.this, Monday.class);
startActivity(intent);
break;
case R.id.button2:
// Tuesday
Intent intent = new Intent(MainActivity.this, Tuesday.class);
startActivity(intent);
break;
// the rest of the buttons go here
default: Log.e("YourTAG", "Default in onClick hit!");
break;
}
}
因此,每次在五个按钮中的任何一个上出现onClick
事件时,上面的onClick
方法都会执行,参数表示您刚才单击的视图
重新聚集意图的细节及其工作方式
正如@Edward所指出的,不要忘记将新活动添加到AndroidManifest.xml文件的应用程序元素下,例如:
<activity android:name=".Monday" android:label="@string/app_name"></activity>
好的。假设布局文件中有以下按钮:-
<Button
android:id="@+id/my_btn"
android:layout_width="55dp"
android:layout_height="22dp"
android:onClick="goToMonday" // function name which will be in MainActivity.java
/>
这是更改活动的方法。好的。假设布局文件中有以下按钮:-
<Button
android:id="@+id/my_btn"
android:layout_width="55dp"
android:layout_height="22dp"
android:onClick="goToMonday" // function name which will be in MainActivity.java
/>
这是更改活动的方法。两个注意事项:您需要在清单中声明您的周一活动;在intent中显式地命名它是不够的。其次,请注意android:onClick属性从API 4开始是新的。如果你想让你的代码在安卓1.5系统上运行,它会自动失败。非常感谢!经过一个又一个小时的失败,我终于成功了!最重要的是-->我真的觉得我明白了。这段代码中我唯一没有得到的部分是什么(视图V)…为什么要声明视图和V…这是我唯一没有得到的部分。非常感谢你!v
将代表您单击的视图
(在您的示例中是其中一个按钮)。为什么要这样声明呢?更多详细信息:谢谢你的帮助!不过,我还有一个问题与活动之间的切换无关。例如,当我在一个随机活动上创建TextView并将android:text=”“更改为默认值以外的其他值时,为什么它会说我应该使用字符串资源?这是必要的,还是我可以在没有字符串资源的情况下工作,而只是将文本放在“”之间?关于为什么应该使用字符串资源,有很多原因,例如:假设您有一个文本为“continue”的按钮,并且您有多个活动的按钮。如果随后决定将文本“continue”更改为“continue”,则必须在包含该按钮的每个XML文件中更改该文本。使用字符串资源,您可以在strings.xml文件中更改它一次,并且引用该字符串的每个按钮都会更新。这是一个愚蠢的例子,但你明白了。这不是强制性的,但推荐。两个预防措施:你需要在你的舱单上申报你的周一活动;在intent中显式地命名它是不够的。其次,请注意android:onClick属性从API 4开始是新的。如果你想让你的代码在安卓1.5系统上运行,它会自动失败。非常感谢!经过一个又一个小时的失败,我终于成功了!最重要的是-->我真的觉得我明白了。这段代码中我唯一没有得到的部分是什么(视图V)…为什么要声明视图和V…这是我唯一没有得到的部分。非常感谢你!v
将代表您单击的视图
(在您的示例中是其中一个按钮)。为什么要这样声明呢?更多详细信息:谢谢你的帮助!不过,我还有一个问题与活动之间的切换无关。例如,当我在随机活动上创建TextView时