簡體   English   中英

如何在java中調用常量?

[英]How to call constants in java?

這個問題可能聽起來有點怪,但是,我如何在java中調用常量? 問題是我正在玩AlertDialog android類。 由於這個類有受保護的構造函數,我無法在我創建對話框的活動類中調用它們。 所以我創建了一個子AlertDialog類並使其構造函數公開,如下所示:

public class TestAlert extends AlertDialog {

public TestAlert(Context context) {
    super(context); 
}   

public TestAlert(Context context, int theme) {
    super(context, theme);      
}
}

然后我創建了這樣的對話框:

TestAlert ta = new TestAlert(con, AlertDialog.THEME_DEVICE_DEFAULT_DARK);
    ta.setMessage("Hello");     
    ta.show();

這里奇怪的是這個代碼是錯誤的: AlertDialog.THEME_DEVICE_DEFAULT_DARK ,我不知道為什么。

從關於AlertDialog類的Android開發者頁面我們可以清楚地看到這些主題是常量。 (公共,靜態,最終)。 由於它們是靜態的,因此應使用類名調用,后跟一個點。 他們也是公開的,所以應該沒有問題。 但奇怪的是我不能那樣做。 但是,如果我傳遞數字而不是常量名稱,它的工作方式如下:

new TestAlert(con, 2);

ps:我知道我應該使用AlertDialog.Builder來構建對話。 但我們稱之為“探索”。

幫助appriciated。

你沒有“調用”常量,你可以引用它們。 你引用它們的方式適用於像這樣的public static常量,並且你的TestAlert構造函數正確地接受第二個參數作為int ,所以沒關系。

這些主題常量在API級別14中添加。如果您正在編譯/定位早期的API,它們將不存在。

暫無
暫無

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

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