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

时间:2013-06-05 17:32:09

标签: java android android-activity

我最近开始使用Eclipse进行编码,但我还没有做太多,所以这或多或少是我的第一个应用程序。我正在尝试让我的学校计划,这很简单:第一个活动显示5个按钮,每个按钮导致一个新的活动(星期一 - 星期五)。

我如何制作,当我点击某个按钮时,会弹出一个新活动(比方说星期一)?

我已经看到过数百个这样的问题已经在这里问过并回答了,但我还是没有得到它。复制和复制是没用的。如果我仍然没有得到正在发生的事情,请从这里粘贴代码。我知道我必须创建一个新的intent和buttonlistener,但我只是不知道它为什么以及该做什么。

有人可以向我解释一下,如何详细说明如何使用按钮完成切换工作以及如何实际操作?

我有:

  • MainActivity.java
  • Monday.java
  • 5个按钮(button1-5)

那么我如何将button1编码为从MainActivity.java切换到Monday.java?

3 个答案:

答案 0 :(得分:1)

首先将android:onClick="onClick"添加到每个按钮的XML元素中。这将使您的按钮在触发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方法将使用代表您刚刚点击的View的参数执行。

详细说明意图及其工作原理here

正如@Edward所说,不要忘记在{em> AndroidManifest.xml 文件中添加application元素下的新活动,例如:

<activity android:name=".Monday" android:label="@string/app_name"></activity>

答案 1 :(得分:0)

你应该做的是创建一个Intent,用这个代码激活你Activity你做的那样:

startActivity(new Intent(YourCurrentActivity.this, Monday.class));

您必须在每个按钮上触发不同的Intent,以创建相应的Activity。 当然不要忘记在清单文件中声明Activity

答案 2 :(得分:0)

行。假设您在布局文件中有以下按钮: -

<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
/>

现在在你的MainActivity.java中: -

public void goToMonday(View v){
    Intent monday_intent = new Intent(MainActivity.this, Monday.class);

    MainActivity.this.startActivity(monday_intent);
}

这是改变活动的方法。