Android:如何使用for循环查找几个textViews的文本值?

时间:2012-06-12 23:59:21

标签: android

我无法根据其实际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>

有关如何使用循环查找每个项目的值的任何想法?

2 个答案:

答案 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做一些事情。如果是这样,那么您应该摆脱这个数字,而不是courtText1courtText2等。每行有一个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
}

但是,也许如果你有一堆重复的结构,那么自定义AdapterGridView可能更适合它。