0

我很难像这样根据实际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>

关于如何通过循环找到每个项目的价值的任何想法?

4

2 回答 2

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`
    }
}
于 2012-06-13T00:02:57.827 回答
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
}

但是,也许如果你有一堆重复的结构,那么也许一个 customAdapter和 aGridView会更适合它。

于 2012-06-13T00:27:31.263 回答