繁体   English   中英

无法从类方法启动活动

[英]Trouble launching activity from class method

我是Java和Android Studio的新手,并且我正在为Dungeons and Dragons构建一个角色生成器应用程序。 您选择种族,角色类和技能,然后应用程序计算所有内容并构建最终的角色表。

我有一个活动允许用户从列表中选择一个类(战斗机,向导等)。 然后,它将选择存储在SharedPreferences文件中。

我想为不同的类调用不同的子活动。 在这些活动中,将进行选择并将其写入SharedPreferences文件。 例如,当巫师选择法术时,战士可以选择战斗风格。

现在我有一个(java)类用于战斗机类,一个用于向导类。 两者都有一个public void create()方法。

调用方法:

if (chosenClass.equalsIgnoreCase("fighter")){
            Fighter classObject = new Fighter();
            Fighter.create();
        }

以下是Fighter类的代码:

import android.content.Intent;

public class Fighter {

    public Fighter(){}

    public void create(){
        Intent fightingStyle = new Intent(this, ChooseFightingStyle.class);
        startActivity(fightingStyle);
    }  
}

但是,我收到一条错误消息“无法解析构造函数'Intent(...)'

任何人都能给我一些关于我做错了什么的见解吗? 或者建议如何更好地做到这一点? 非常感谢。

那是因为在你的情况下“this”并不代表一个Context,你应该尝试这样的事情:

public void create(Context context){
    Intent fightingStyle = new Intent(context, ChooseFightingStyle.class);
    startActivity(fightingStyle);
} 

根据Intent类构造函数的文档,它们可以将字符串作为第一个参数或Context。 您的Fighter类应该是Context类型,以将其作为参数传递。 但是,如果您具有对上下文的引用,则也可以在Intent构造函数中传递它。

建议:当您从主活动的列表中选择Fighter类时,您可以从主活动传递上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM