2017-07-02 55 views
0

不可知,我們認識到當前顯示佈局不知道它的名字,然後我們遍歷通過佈局中的所有視圖中使用,以獲得它們的ID如何獲得的類型查看對象的文本

id = container.getChildAt(i).getId() 

那麼obtaind ID轉換爲使用

view = findViewById(id) 

那麼我們試圖讓使用分配給該視圖中的文本視圖

view.getText() 

但'.getText'方法未定義在類型爲View的對象上

請讓我們知道讓文本分配給View類型的對象。

+0

你是什麼意思的名義下做,如果一個佈局或查看?如果您的意思是'R.id.some_name' - 它不是運行時存在的名稱 - 它是'static int' Java標識符,只存在int源代碼。 'getText()' - 是具有此屬性的特定類的實例的屬性的getter。佈局沒有這樣的 – atlascoder

回答

1

您可以使用instanceof檢查View的類型,並將其轉換爲TextView並獲得價值。

例子:

if (view instanceof Textview) 
    { 
     ((TextView)view).getText(); 
    } else if (view instanceof EditText) 
    { 
    ((EditText)view).getText(); 
    } 

非但沒有標識和使用findViewById(id)可以使用孩子從容器中發現的意見。

即你可以像這樣

if (container.getChildAt(i) instanceof TextView) 
{ 
.... 
} 
+0

好吧..但我不知道如果我得到的視圖是一個TextView或Edittext或完全是什麼? – user2121

+0

您可以使用多個instanceof作爲您的可能性。 –

+0

例如。 instanceof EditText –