【问题标题】:How to change the activity using a method and call it如何使用方法更改活动并调用它
【发布时间】:2019-01-03 14:25:04
【问题描述】:
public void changeActivity(Context context){
        Intent intent =new Intent(this,context.getClass());
        startActivity(intent);
        finish();
}
@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.register:
               changeActivity(RegisterActivity);
               break;
    }
}

我正在使用“changeActivity”方法,但在第 10 行出现错误。错误指出“预期表达式”

【问题讨论】:

标签: android


【解决方案1】:

当你开始活动时,你没有将你的类文件作为对象传递给Intent

找出以下解决方案:

public void changeActivity(Class<? extends Activity> context) { // Receive it here and provide to your intent.
    Intent intent =new Intent(this, context);
    startActivity(intent);
    finish();
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.register:
               changeActivity(RegisterActivity.class); // pass object of your desired activity as class parameter here
               break;
    }
}

【讨论】:

    【解决方案2】:

    您已经在 changeActivity 方法中传递了您的目标活动的类对象,如下所示:

    public void changeActivity(Class<? extends Activity> desinationActivity) { 
        Intent intent = new Intent(this, destinationActivity);
        startActivity(intent);
        finish();
    }
    
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.register:
                   changeActivity(RegisterActivity.class); 
                   break;
        }
    }
    

    您可以查看此link 以供参考。希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      要编写此类代码,您可以查看系统源代码。 Intent构造函数代码如下:

      public Intent(Context packageContext, Class<?> cls) {
          mComponent = new ComponentName(packageContext, cls);
      }
      

      【讨论】:

        猜你喜欢
        • 2021-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-13
        • 1970-01-01
        • 2013-01-25
        相关资源
        最近更新 更多