Android案例说明帮助

Android案例说明帮助,android,android-layout,Android,Android Layout,我试图让我的案例陈述根据按下的按钮打开不同的类。我得到这个工作的一个按钮很好,但我不确定如何继续为两个按钮 以下是我目前的代码: public void onClick(View v) { switch (v.getId()) { case R.id.about_button: Intent i = new Intent(this, About.class); startActivity(i); break; case R.

我试图让我的案例陈述根据按下的按钮打开不同的类。我得到这个工作的一个按钮很好,但我不确定如何继续为两个按钮

以下是我目前的代码:

public void onClick(View v) {
    switch (v.getId()) {
    case R.id.about_button:
        Intent i = new Intent(this, About.class);
        startActivity(i);
        break;
    case R.id.reminderList_button:
        Intent i = new Intent (this, ReminderListActivity.class);
        startActivity(i);
        break;

    }

}
这会产生一个错误,因为我正在重用局部变量(I)-如果有人能让我知道如何正确地执行此操作,我将不胜感激。

public void onClick(View v) {
    switch (v.getId()) {
    case R.id.about_button:
        {
            Intent i = new Intent(this, About.class);
            startActivity(i);
            break;
        }
    case R.id.reminderList_button:
        {
            Intent i = new Intent (this, ReminderListActivity.class);
            startActivity(i);
            break;
        }
    }
}

您可以在switch语句之前声明变量
i
。如果您计划在switch语句之后使用变量
i
,则这比“作用域”更可取:

public void onClick(View v) {
    Intent i = null;
    switch (v.getId()) {
    case R.id.about_button:
        i = new Intent(this, About.class);
        break;
    case R.id.reminderList_button:
        i = new Intent (this, ReminderListActivity.class);
        break;
    }
    startActivity(i);
    ...; // other statements using `i'
}

伟大的似乎正是我想要的:DIMHO:在这一点上,创建方法startAboutActivity()、startReminderListActivity()更具可读性。。。等等。为什么这比范围界定更好?只是更干净和更少的代码?@user319940是的,正如我所说的:如果您想稍后在switch语句之后使用变量
I
,那么如果您将
I
设置为switch语句中的作用域的局部,您将无法这样做。不管怎样,如果在switch语句之后移出
startActivity(i)
,重复的代码也会减少。:)如果不处理默认情况,则更容易出错。一定要初始化并检查i,至少。是的,它通过了一个错误,关于它没有被初始化,所以我只是使它=空-似乎工作正常。谢谢:)。在使用它之前,你仍然需要检查i是否为null,否则如果getId()返回你没有处理的内容,你的应用程序将崩溃。