【问题标题】:Android - Changing Text For TextViews For a Dynamically Added LayoutAndroid - 为动态添加的布局更改 TextViews 的文本
【发布时间】:2015-11-20 20:23:50
【问题描述】:

我有一个CardView,其中包含一个RelativeLayout,带有几个TextView 和一个按钮。我已经成功地将它们动态添加到布局中。但我想以编程方式更改这些 TextView's 的文本(不同卡片的不同文本),我不知道该怎么做。我如何做到这一点?

CardView XML:

<android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/CardView_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        card_view:cardElevation="20dp" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">


            <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:id="@+id/imageView2"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true"
                android:layout_marginStart="21dp"
                android:layout_marginTop="23dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textSize="45dp"
                android:gravity="center"
                android:id="@+id/textView4"
                android:layout_alignTop="@+id/imageView2"
                android:layout_alignStart="@+id/imageView2"
                android:layout_alignBottom="@+id/imageView2"
                android:layout_alignEnd="@+id/imageView2" />

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageView2"
                android:layout_alignParentStart="false"
                android:visibility="gone"
                android:id="@+id/relativeLayout">


                <View
                    android:layout_width="fill_parent"
                    android:layout_height="1.25dp"
                    android:background="@android:color/darker_gray"
                    android:layout_alignParentStart="true"
                    android:layout_marginTop="10dp"
                    android:id="@+id/view" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="Assignments"
                    android:id="@+id/textView8"
                    android:layout_marginLeft="50dp"
                    android:textColor="#000000"
                    android:layout_marginTop="28dp"
                    android:layout_below="@+id/textView11" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="Homework"
                    android:id="@+id/textView9"
                    android:textColor="#000000"
                    android:layout_marginTop="10dp"
                    android:layout_below="@+id/textView8"
                    android:layout_alignStart="@+id/textView8" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="Exams"
                    android:layout_marginTop="10dp"
                    android:id="@+id/textView10"
                    android:textColor="#000000"
                    android:layout_below="@+id/textView9"
                    android:layout_alignStart="@+id/textView9" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:text="TASKS"
                    android:layout_marginTop="10dp"
                    android:textColor="#000000"
                    android:id="@+id/textView11"
                    android:layout_below="@+id/view"
                    android:layout_centerHorizontal="true" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="Personal Notes"
                    android:textColor="#000000"
                    android:layout_marginTop="10dp"
                    android:id="@+id/textView12"
                    android:layout_below="@+id/textView10"
                    android:layout_alignStart="@+id/textView10" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="0"
                    android:id="@+id/textView13"
                    android:textColor="#000000"
                    android:layout_marginStart="21dp"
                    android:layout_above="@+id/textView9"
                    android:layout_toEndOf="@+id/textView11" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="0"
                    android:id="@+id/textView14"
                    android:textColor="#000000"
                    android:layout_alignTop="@+id/textView9"
                    android:layout_alignStart="@+id/textView13" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="0"
                    android:textColor="#000000"
                    android:id="@+id/textView15"
                    android:layout_alignTop="@+id/textView10"
                    android:layout_alignStart="@+id/textView14" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="0"
                    android:textColor="#000000"
                    android:id="@+id/textView16"
                    android:layout_alignBottom="@+id/textView12"
                    android:layout_alignStart="@+id/textView15" />

                <View
                    android:layout_width="fill_parent"
                    android:layout_height="2dp"
                    android:layout_alignParentStart="true"
                    android:layout_marginTop="10dp"
                    android:id="@+id/view2"
                    android:layout_alignBottom="@+id/textView12"/>

                <ImageButton
                    android:layout_width="30dp"
                    android:layout_height="35dp"
                    android:background="@drawable/note_button"
                    android:id="@+id/button2"
                    android:layout_alignBottom="@+id/textView15"
                    android:layout_alignParentEnd="true"
                    android:layout_marginBottom="7dp"
                    android:layout_marginEnd="38dp" />

            </RelativeLayout>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="SCHEDULE"
                android:id="@+id/button"
                android:layout_weight="0.09"
                android:layout_below="@+id/relativeLayout"
                android:layout_alignParentStart="true"
                android:layout_alignEnd="@+id/linearLayout" />

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignTop="@+id/imageView2"
                android:layout_toEndOf="@+id/imageView2"
                android:layout_alignBottom="@+id/imageView2"
                android:id="@+id/linearLayout">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Class No: "
                    android:textColor="#000000"
                    android:id="@+id/t_dur"
                    android:layout_marginLeft="20dp"
                    android:layout_marginTop="8dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Subject"
                    android:textColor="#000000"
                    android:id="@+id/t_sub"
                    android:layout_marginLeft="20dp"
                    android:layout_marginTop="15dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Room No: "
                    android:textColor="#000000"
                    android:id="@+id/t_roomno"
                    android:layout_marginLeft="20dp"
                    android:layout_marginTop="15dp" />
            </LinearLayout>

        </RelativeLayout>

    </android.support.v7.widget.CardView>

添加布局的代码(b,c,d是TextViews):

@Override
public void onClick(View v) {
    switch(v.getId()){
        case R.id.badd:
            LinearLayout ll = (LinearLayout) findViewById(R.id.cardtest);

            LinearLayout ll2 = (LinearLayout) findViewById(R.id.lladd);
            View v1 = getLayoutInflater().inflate(R.layout.card, ll2, false);

            try{

                b = (TextView) findViewById(R.id.t_dur);
                c = (TextView) findViewById(R.id.t_sub);
                d = (TextView) findViewById(R.id.t_roomno);

                if (i > 1) {
                    ll2.addView(v1);
                    Log.v("DEBUG: ", "Inside IF");

                    b.setId(View.generateViewId());
                    c.setId(View.generateViewId());
                    d.setId(View.generateViewId());

                    b.setText("Class No: " + i);
                    c.setText("Subject: " + i);
                    d.setText("Room No: " + i);
                }else{
                    Log.v("DEBUG: ", "Inside ELSE");
                    CardView cv = (CardView) findViewById(R.id.CardView_1);
                    cv.setVisibility(View.VISIBLE);

                    b.setText("Class No: " + i);
                    c.setText("Subject: " + i);
                    d.setText("Room No: " + i);
                }
                i++;
            }catch (Exception e){
                Log.v("DEBUG: ", e.toString());
            }
        break;
    }
}

【问题讨论】:

  • 请出示您的代码...

标签: android textview android-button android-cardview


【解决方案1】:

您可以创建 Textview 的ArrayList,以便您可以随时访问。

arrList.add(b);

喜欢这个并访问那个并在需要时将 Text 设置为它。

【讨论】:

  • 但这仅适用于 1 张卡。如果我想更改多张卡片上的文字怎么办?
  • 您可以使用 Expandable ListView
  • 你能举个例子吗?
  • 在可展开的列表视图中,您可以在列表项中添加项目并在列表中呈现
猜你喜欢
  • 2023-04-02
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多