[英]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.