我无法根据其实际ID查找每个视图 -
TextView updateText = (TextView)findViewById(R.id.courtText1);
根据我的循环中的“i”的当前值查找每个视图,如下所示 -
for(int i=1; i<3; i++){
TextView updateText = (TextView)findViewById(R.id.courtText"i");
}
这是布局XML -
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="2dp" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="@drawable/row_background"
android:clipToPadding="true"
android:padding="5dp" android:onClick="goToDetail">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/courtText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Moscone Rec Center"
android:textColor="#D8D8D8"
android:textSize="20dp" />
<TextView
android:id="@+id/updateText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#D8D8D8"
android:textSize="15dp" />
<TextView
android:id="@+id/timeText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#D8D8D8"
android:textSize="15dp" />
</LinearLayout>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_dialog_map" android:onClick="goToMap"/>
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@android:drawable/ic_menu_share" android:onClick="shareUpdate"/>
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="@drawable/row_background"
android:clipToPadding="true"
android:padding="5dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/courtText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Joe Dimaggio"
android:textColor="#D8D8D8"
android:textSize="20dp" />
<TextView
android:id="@+id/updateText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#D8D8D8"
android:textSize="15dp" />
<TextView
android:id="@+id/timeText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#D8D8D8"
android:textSize="15dp" />
</LinearLayout>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_dialog_map" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@android:drawable/ic_menu_share" />
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="@drawable/row_background"
android:padding="5dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/courtText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Brentwood Rec Center"
android:textColor="#D8D8D8"
android:textSize="20dp" />
<TextView
android:id="@+id/updateText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#D8D8D8"
android:textSize="15dp" />
<TextView
android:id="@+id/timeText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#D8D8D8"
android:textSize="15dp" />
</LinearLayout>
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_dialog_map" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@android:drawable/ic_menu_share" />
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:background="@drawable/row_background"
android:padding="5dp" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Can't find your court?"
android:textColor="#D8D8D8"
android:textSize="20dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Let us know"
android:textColor="#D8D8D8"
android:textSize="15dp" />
<ImageButton
android:id="@+id/imageButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_dialog_email" android:onClick="createSupportEmail"/>
</LinearLayout>
</TableRow>
</TableLayout>
有关如何使用循环查找每个项目的值的任何想法?
答案 0 :(得分:3)
为您的容器(LinearLayout
)提供一个ID,并对其子项进行迭代。
LinearLayout container = (LinearLayout) findViewById(R.id.whatever);
TextView updateText;
for (int i = 0; i < container.getChildCount(); i++) {
updateText = (TextView) container.getChildAt(i);
// Do something to `updateText`
}
更新:这是此类事情的一般习惯用语。我只是仔细查看了你的代码,如果我理解你在这种情况下想要做什么,你想迭代表行并对每行的特定TextArea
做一些事情。如果是这样,那么您应该摆脱这个数字,而不是courtText1
,courtText2
等。每行有一个courtText
,一个upateText
和一个timeText
。然后做这样的事情:
TableLayout table = (TableLayout) findViewById(R.id.give_it_an_id);
TextView courtText;
// For each row
for (int i = 0; i < table.getChildCount(); i++) {
// Get the one `courtText` in this row
courtText = table.getChildAt(i).findViewById(R.id.courtText);
if (courtText != null) {
// Do something to `courtText`
}
}
答案 1 :(得分:0)
既然你知道有多少人并且你知道ids ...你可以轻松地做一些事情,
for (int id : new int[] {R.id.courtText1, R.id.timeText1, R.id.updateText1, R.id.courtText2, R.id.timeText2, R.id.updateText2}) {
TextView tv = (TextView)findViewbyId(id);
// do something with the view
}
但是,也许如果你有一堆重复的结构,那么自定义Adapter
和GridView
可能更适合它。