0
返回的子元素通過其類類型我有question.xml:android系統
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginBottom="10dp"
android:textColor="#239"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"
android:layout_gravity="center_horizontal" />
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"></RadioGroup>
</LinearLayout>
和一個函數返回給定的parentId的第一個孩子的看法:
public View findViewByType(int parentId, Class<?> type){
LinearLayout rootLinearLayout = (LinearLayout) findViewById(parentId);
int count = rootLinearLayout.getChildCount();
for (int i = 0; i < count; i++) {
View v = rootLinearLayout.getChildAt(i);
//Toast.makeText(getApplicationContext(), v.getClass().getName(),Toast.LENGTH_LONG).show();
if (v.getClass() == type) return v;
}
return null;
}
我充氣使用question.xml
佈局像一個視圖,然後試圖從它那裏得到的RadioGroup中:
LinearLayout q = (LinearLayout)getLayoutInflater().inflate(R.layout.question, null);
RadioGroup rg = (RadioGroup) findViewByType(q.getId(), RadioGroup.class);
的rg
是null
當我測試它喜歡:
q.getChildAt(0).getClass().GetName(); //return TextView = Correct
q.getChildAt(1).getClass().GetName(); //returns RadioGroup = Correct
但在功能findViewByType
循環,對於訴值:
I = 1是TextView
這是正確的
I = 2是LinearLayout
這就是INCORRECT
我在做什麼錯?
順便說一下,我試圖在調用函數之前設置Id爲虛擬的LinearLayout
,但結果是相同的。