2010-11-27 110 views
12

我已經閱讀了大量的Android文檔,我還沒有找到任何聲明「@ + id」的id值前綴的含義。我知道什麼是「@string」及其意義的變體,而不是「+」的變體。除了給我答案之外,你能告訴我在Android文檔中哪裏有文檔記錄嗎?「@ + id」是什麼意思?

回答

39

加號只是表示如果ID不存在,應該創建該ID。

這是常見的做法是在佈局中定義一個新的視圖時使用@+id/foo,然後用@id/foo從佈局的另一部分引用視圖(比如說,在一個RelativeLayout的層次)或R.id.foo從代碼中引用它。


UPDATE:文檔是在這裏:Declaring Layout - Attributes - ID

3

這對於一個Android XML佈局元素鏈接到你的Java代碼的語法。所以如果我想在TextView中顯示文本,我必須這樣做。

步驟一 - 定義佈局

<TextView 
android:id="@+id/SaveResult" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="SaveResult" 
android:layout_x="16px" 
android:layout_y="190px" 
> 
</TextView> 

然後,在代碼中,我使用@ + id來佈局鏈接到該變量。將@ + id想象成數據庫中的外鍵。

TextView lblSaveResult = (TextView)findViewById(R.id.SaveResult); 

現在,它已經可以使用了。當我將文本分配,它使用@ + id來看看把它放在哪裏,而且顏色,大小等。

lblSaveResult.setText("This text is now on the screen"); 

很抱歉,但我不知道在哪裏的文件是這個...

1

當您引用XML中的任何資源對象時,at符號(@)是必需的。它後面是資源類型(在這種情況下是id)。

只有當您第一次定義資源ID時,才需要資源類型前的加號(+)。編譯應用程序時,SDK工具使用ID名稱在項目的gen/R.java文件中創建新的資源ID,該文件引用UI元素。使用這種方法聲明資源ID時,對ID的其他引用不需要加號。只有在指定新資源ID並且不需要字符串或佈局等具體資源時才需要使用加號。

0

加號表示您正在創建一個不存在的新ID。例如「@ + id/xyz」。如果您編寫「@ id/xyz」,則表示您正在引用佈局另一部分的視圖。