0

我试图通过按下按钮让程序从一个班级转到另一个班级。我知道这需要有意识地完成,但我不确定要使用什么动作来实现意图。另外,我宁愿不尝试使用 OnClickListener,因为在我看来这对于我需要做的事情来说有点过分了。虽然我可能是错的,我只是想多了。这是我的代码:

 public void loginScreen(View view) {
   // Should take user to the next view when button pressed
      Intent intent = new Intent(this, LoginActivity.class);
      Button login = (Button) findViewById(R.id.button1);
      intent.getData(login);
      startActivity(intent);
    }

我希望它在仅按下按钮 1 时进入下一个屏幕,所以我不知道是否只有第 3 行和第 6 行是唯一需要的,但如果它只是那两行它将不起作用。我相信问题出在 getData,我不知道该放什么,但我知道 getData 错了。我可能还缺少其他东西,但我不知道是什么。

另外,如果这不容易理解,请原谅我,这是第一次尝试在这里提出问题。

4

2 回答 2

1

在没有明确设置 onClickListener 的情况下:

<button
    ...
    android:onClick="loginClicked" />

public void loginClicked(View v) {
    Intent intent = new Intent(this, LoginActivity.class);
    startActivity(intent);
}

显式设置 onClickListener 也不是矫枉过正。

你的问题并不完全清楚,所以如果你需要更多,请告诉我,我会编辑我的答案。

于 2013-02-17T18:33:28.783 回答
1

在您的 XML 文件中,您可以声明您的点击:

<Button
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:onClick="loginScreen" />

然后在您的活动中:

public void loginScreen(View button) {
  Intent intent = new Intent(this, LoginActivity.class);
  startActivity(intent);
}

这是onClick 查看 API

单击视图时要在此视图的上下文中调用的方法的名称。此名称必须对应于只采用一个 View 类型参数的公共方法。例如,如果您指定 android:onClick="sayHello",则必须声明您的上下文(通常是您的 Activity)的 public void sayHello(View v) 方法。

请注意,如果您将 onClick 添加到 Fragment 布局,它仍然需要在 Activity 中捕获。

于 2013-02-17T18:34:30.417 回答