无法从类方法启动活动

时间:2017-02-17 00:01:15

标签: java android

我是Java和Android Studio的新手,并且要了解我正在为“龙与地下城”构建一个角色生成器应用程序。您选择种族,角色类和技能,然后应用程序计算所有内容并构建最终的角色表。

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

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

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

调用方法:

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

以下是战斗机类的代码:

import android.content.Intent;

public class Fighter {

    public Fighter(){}

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

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

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

2 个答案:

答案 0 :(得分:0)

那是因为"这个"在您的情况下,不代表上下文,您应该尝试这样的事情:

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

答案 1 :(得分:0)

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

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