簡體   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