2015-07-21 66 views
1

我一直在嘗試從過去幾小時的另一個佈局獲取小部件,但仍然沒有運氣。有人可以告訴我目前的代碼有什麼問題嗎?Android - 獲取其他佈局小部件

public void refreshClicked(View view){ 

    tab1 = LayoutInflater.from(view.getContext()).inflate(R.layout.tab_1, null); 
    Button b = (Button) tab1.findViewById(R.id.refresh); 
    b.setText("Updating..."); 


} 

我勾住我的按鈕onClickrefreshClicked(View view)方法。

此方法位於我的MainActivity.java下,我試圖從idrefreshtab_1.xml佈局中獲取按鈕,但按鈕文本未更新。

謝謝!

+0

你想訪問一個已經存在的視圖或創建一個新視圖嗎?因爲在這裏你膨脹了一個新的觀點,但你似乎並沒有使用它。 – user2641570

+0

嗨,是的,我試圖訪問現有的視圖。基本上,我試圖從我的一個標籤中獲取小部件。 – Jim

+0

好的,您傳遞給refreshClicked()的視圖參數是您的選項卡/控件的視圖? – user2641570

回答

1

您似乎膨脹了佈局,但從來沒有將其附加到父視圖,因爲ViewGroup參數爲空。然後這種膨脹的佈局甚至不能顯示在任何地方。

如果按鈕b已經存在,則不需要膨脹佈局並在那裏檢索按鈕窗體,它將會有不同的按鈕。 只需從實際的現有佈局中檢索按鈕。

+0

它的工作!爲什麼我甚至不得不添加'tab1 = this.getLayoutInflater()。inflate(R.layout.tab_1,null);'我認爲findViewById不會工作,如果你不在你想要訪問的佈局。我錯了XD謝謝兄弟! – Jim