【问题标题】:Button onClick doesn't go back to another activity - Android按钮 onClick 不会返回另一个活动 - Android
【发布时间】:2018-06-09 01:46:30
【问题描述】:

在我的注册页面中,我有一个按钮,点击后会进入登录活动。但我不确定点击时哪个按钮不起作用。

这是我在activity_signup.xml中的按钮:

<Button
    android:id="@+id/btnLogin"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:background="@color/transparent"
    android:text="Already registerd? Log in here"
    android:textColor="@color/white" />

SignUpActivity.java 中,我正在尝试添加一个onClcik 方法来打开LoginActivity.java。但它不起作用。

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.btnLogin:
            finish();
            startActivity(new Intent(SignUpActivity.this, LoginActivity.class));
            break;
    }
}

你能告诉我我做错了什么,为什么这个按钮不起作用?提前致谢。

【问题讨论】:

  • 您需要在Button 视图的xml 布局中添加属性android:onClick="onClick" 。顺便说一句,您可能希望将其更改为 android:onClick="myButtonOnClick" 之类的内容,当然也相应地更改方法名称
  • 我通常的做法是添加 abuuton,然后向该按钮添加一个点击监听器,然后覆盖该按钮的点击并在最后完成
  • 你能把java代码放在你调用setOnClickListener的地方吗...
  • 谢谢,@Barns。它解决了这个问题。你能把它贴出来并给出答案吗?那我就可以把它标记为正确答案了。
  • @Ashonko 虽然这解决了这个问题,但在下面的帖子中提到了这种方法存在一些问题:stackoverflow.com/questions/50593014/… 因此,通过实现接口来做这件事是一个更好的主意或直接附加一个 onClickListener。

标签: java android


【解决方案1】:

你应该把这行代码写在 onCreate 方法的末尾而不是你的 void:-

Button btn = (Button)findViewById(R.id.btnLogin);
btn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        onBackPressed();

    }
});

您也可以使用finish(); 代替onBackPressed(); 以及finish(); 之后您想要什么, onBackPressed(); 做目前 android 后退按钮所做的事情。

【讨论】:

  • 虽然这是正确的并且肯定是一种尝试的方法,但它并不能完全回答 OP 的问题。在这种情况下,他需要做的就是实现一个 onClickListener 接口。
【解决方案2】:

你需要在你的Activity中实现View.OnClickListener接口。 只需修改这一行:

public class MainActivity extends AppCompatActivity implements View.OnClickListener

注意实现 View.OnClickListener 部分。

另一种方法是在按钮本身上设置一个 onClickListener,如下所示:

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //your logic here
        }
    });

如果有帮助,请标记为已解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多