如何在Android中从XML文件中填充视图?

16

我正在创建一个表格布局[以XML形式给出]

添加表格行[在XML中创建并在Java中填充]

还要向表格行中添加2个文本视图[在XML中创建并在JAVA中填充]

我能够获得背景和文字颜色,但无法获取布局属性,如宽度、高度和边距,以获得表格视图。


2
请发布您的XML文件代码和Java代码,以便您可以将其填充。 - Triode
正如您所提到的,每个表格行有2个文本视图,我建议您实现一个带有自定义适配器的ListView。 - Paresh Mayani
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="400dip" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="2dip" android:background="#000000" android:textColor="@color/white" /> - Gnanam R
3个回答

56
  1. 首先声明你的inflater。

LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService
  (Context.LAYOUT_INFLATER_SERVICE);
  • 确定并填充您要在当前视图上显示的新视图。

  • View view = inflater.inflate(R.layout.new_layout,null);
    
    你需要将你新添加的膨胀视图添加到你的布局中。
    main.addView(view);
    

    你可以在这里引用更多的信息:http://developer.android.com/reference/android/view/LayoutInflater.html

    2019年5月更新(Kotlin):以下是在 Kotlin 中从 XML 填充视图的方法,此处参考一个活动。

    val view = this.layoutInflater.inflate(R.layout.dialog_upgrade, null)
    mainLayout.addView(view)
    

    13
    LayoutInflater li = LayoutInflater.from(getApplicationContext());
    View cv = li.inflate(R.layout.your_layout, null);
    
    mainlayout.addView(cv);
    

    1
    LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService      (Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.your_layout,null);
    mainlayout.addView(view;
    

    按照上述步骤展开视图。


    如何获取mainLayout?我们在onCreate()中设置setContentView(layout)。 - Gnanam R
    在您的情况下,mainlayout 将是您的 tableLayout 实例。 - Shankar Agarwal
    是的,我明白你的意思并且已经按照同样的方式做了。我可以在屏幕上获取视图组件[TextView],但只应用背景和文本颜色,而不是我在上面的评论中给出的布局属性。 - Gnanam R
    你可以使用布局参数来应用宽度、高度和边距。 - Shankar Agarwal
    我已经完成了,但是我无法获得正确间距的textview组件。 - Gnanam R

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接