簡體   English   中英

如何將活動作為函數中的參數傳遞

[英]How to pass an Activity as parameter in function

我想創建一個函數,該函數接收一個Activity作為參數,並將其更改為該Activity。 但是,如果我使用Activity的.class調用該函數,它將把該函數的參數更改為Class<{Name}Activity> ,因此它將僅接受該活動。

例如。 調用函數:

sendUserToActivity(MainActivity.class);

定義方式:

private void sendUserToActivity(Class<MainActivity> activityClass) {
    Intent intent = new Intent(RegisterActivity.this, activityClass);
    startActivity(intent);
}

如果我嘗試另一個電話:

sendUserToActivity(LoginActivity.class);

出現錯誤。 由於該函數的參數被設置為Class MainActivity,因此它當然不會接受另一個Activity,那么應該如何定義它才能接受另一個Activity?

也許您可以嘗試以下方法:

private void sendUserToActivity(Class<? extends Activity> activityClass) {
    Intent intent = new Intent(RegisterActivity.this, activityClass);
    startActivity(intent);
}

這樣,您將使用泛型,並且擴展活動的每個人都將被接受,因此您的代碼可適應您想要的每個活動。

這是一個示例,如何根據您的情況進行:

private void sendUserToActivity(MainActivity activityClass) {
    Intent intent = new Intent(activityClass, activityClass.getClass());
    startActivity(intent);
}
xyz(XActivity.class);

void xyz(Class<?> cls)
{
    Intent intent = new Intent(MainActivity.this, cls);
    startActivity(intent);
}

做這份工作。 我現在嘗試了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM