以编程方式将 LinearLayout 设置为 TableRow

发布于 2024-12-04 13:14:38 字数 1269 浏览 0 评论 0原文

我有下一个布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/foto"
        android:scaleType="fitCenter"
        android:layout_width="70dp"
        android:layout_height="70dp"/>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="fill_parent"
            android:id="@+id/nombre"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:textColor="#ffffff"
            android:textSize="16sp" />
        <TextView
            android:layout_width="fill_parent"
            android:id="@+id/posicion"
            android:textColor="#ffffff"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</LinearLayout>

我想以编程方式将此布局设置为 TableRow。 有什么想法吗?

谢谢。

I have the next layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/foto"
        android:scaleType="fitCenter"
        android:layout_width="70dp"
        android:layout_height="70dp"/>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="fill_parent"
            android:id="@+id/nombre"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:textColor="#ffffff"
            android:textSize="16sp" />
        <TextView
            android:layout_width="fill_parent"
            android:id="@+id/posicion"
            android:textColor="#ffffff"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</LinearLayout>

And I would like to set this layout to a TableRow programmatically.
Any idea?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里泪两行 2024-12-11 13:14:38

正如 Cristian 所建议的,使用 LayoutInflater 解决了我的问题。
这是我的活动的代码:

public class SeleccionarJugador extends Activity {

private TableLayout mTablaJugadores;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    // Se establece el layout
    setContentView(R.layout.jugadores);

    // Se recupera la tabla donde se insertán los jugadores de ambos equipos
    mTablaJugadores = (TableLayout) findViewById(R.id.tabla_jugadores);
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    TableRow fila = new TableRow(this);
    View v = inflater.inflate(R.layout.fila_seleccionar_jugadores,null);
    TextView dorsal = (TextView) v.findViewById(R.id.dorsal);
    dorsal.setText(String.valueOf(11));
    TextView nombre = (TextView) v.findViewById(R.id.nombre);
    nombre.setText("Pepe");
    TextView posicion = (TextView) v.findViewById(R.id.posicion);
    posicion.setText("Lateral");
    fila.addView(v);
    mTablaJugadores.addView(fila);

}

我使用要插入到每一行中的布局“膨胀”一个视图,然后将布局内的组件进行操作,然后将视图插入到该行中。
最后,我只需将该行插入表中即可!

多谢。

As Cristian suggested, using LayoutInflater solved my problem.
This is the code for my activity:

public class SeleccionarJugador extends Activity {

private TableLayout mTablaJugadores;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    // Se establece el layout
    setContentView(R.layout.jugadores);

    // Se recupera la tabla donde se insertán los jugadores de ambos equipos
    mTablaJugadores = (TableLayout) findViewById(R.id.tabla_jugadores);
    LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    TableRow fila = new TableRow(this);
    View v = inflater.inflate(R.layout.fila_seleccionar_jugadores,null);
    TextView dorsal = (TextView) v.findViewById(R.id.dorsal);
    dorsal.setText(String.valueOf(11));
    TextView nombre = (TextView) v.findViewById(R.id.nombre);
    nombre.setText("Pepe");
    TextView posicion = (TextView) v.findViewById(R.id.posicion);
    posicion.setText("Lateral");
    fila.addView(v);
    mTablaJugadores.addView(fila);

}

I "inflate" one View with the layout which I would like to insert into each row, and I take the components inside the Layout, manipulate them, and then insert the View into the row.
Finally, just I have to insert the row into the Table and That's it!.

Thanks a lot.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文