Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过单击按钮打开新活动?_Java_Android_Android Activity - Fatal编程技术网

Java 如何通过单击按钮打开新活动?

Java 如何通过单击按钮打开新活动?,java,android,android-activity,Java,Android,Android Activity,我最近开始在Eclipse中编写代码,但我还没有做多少工作,所以这或多或少是我的第一个应用程序。我试着制定我的学校时间表,很简单:第一个活动显示5个按钮,每个按钮指向一个新的活动(周一到周五) 我该如何做才能在我点击某个按钮时弹出一个新的活动(比如周一) 我已经在这里看到了数百个这样的问题,但我就是不明白。如果我仍然不知道发生了什么,从这里复制并粘贴代码是没有用的。我知道我必须创建一个新的意图和按钮列表,但我不明白它的目的和接下来要做什么 有没有人能尽可能详细地向我解释一下,使用按钮在活动之间切

我最近开始在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时