我是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);
}
}
但是,我收到一条错误消息“无法解析构造函数'意图(...)'
有人能给我一些关于我做错了什么的见解吗?或者建议如何更好地做到这一点?非常感谢。
答案 0 :(得分:0)
那是因为"这个"在您的情况下,不代表上下文,您应该尝试这样的事情:
public void create(Context context){
Intent fightingStyle = new Intent(context, ChooseFightingStyle.class);
startActivity(fightingStyle);
}
答案 1 :(得分:0)
根据Intent类构造函数的文档,它们可以将字符串作为第一个参数或Context。您的Fighter类应该是Context类型,以将其作为参数传递。但是,如果您具有对上下文的引用,则也可以在Intent构造函数中传递它。
建议:当您从主活动的列表中选择Fighter类时,您可以从主活动传递上下文。