【问题标题】:MainActivity is not an enclosing class, "this" makes a constructor errorMainActivity 不是封闭类,“this”会导致构造函数错误
【发布时间】:2020-02-01 21:14:38
【问题描述】:

我是 android studio 新手,在尝试跳转到新活动时遇到问题,所以当线路是:

public class signup_activity extends AppCompatActivity {

ImageButton logupButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signup_activity);

    logupButton = findViewById(R.id.signuparrow);

    logupButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, signup_activity.class);
            startActivity(intent);
        }
    });

}}

我得到错误:

'com.example.myapplication.MainActivity' 不是封闭类

我有几个人建议改变这个意图而不是 MainActivity.this 但是当我改成这个时,我得到了错误:

无法解析构造函数'intent'

【问题讨论】:

  • “我收到错误:'com.example.myapplication.MainActivity' 不是封闭类”——您的活动类被命名为 signup_activity,而不是 MainActivity。您似乎还创建了一个Intent,它将启动您所在的活动:此代码位于signup_activity,您将启动signup_activity

标签: android android-intent android-activity


【解决方案1】:
          Intent intent = new Intent(MainActivity.this, signup_activity.class);

几件事:

  • 首先,Intent() 构造函数的第一个参数是一个上下文。由于您使用的是signup_activity,因此您需要使用signup_activity.this 将其用作上下文。
  • 我假设你想去 MainActivity,所以你的第二个参数应该是 MainActivity.class。看来你的顺序在那里被改变了。

【讨论】:

    【解决方案2】:

    您在 signup_activity 中,当在第一部分使用 Intent 时,您应该调用当前上下文以跳转到其他活动。 所以你应该替换

    Intent 意图 = new Intent(signup_activity.this, MainActivity.class);

    如果你想跳转到signup_activity,你可以从MainActivity调用intent。

    【讨论】:

      猜你喜欢
      • 2020-05-31
      • 1970-01-01
      • 2021-07-18
      • 2023-02-08
      • 2019-05-12
      • 1970-01-01
      • 2017-03-10
      • 2021-10-16
      • 2011-10-02
      相关资源
      最近更新 更多