android以编程方式在tableRows中创建textViews

标签 android android-layout android-event

我有这三个元素数量相同的列表

List<String>competitoinsIDs = new LinkedList<String>();
List<String>marks = new LinkedList<String>();
List<String>numOfQuestions = new LinkedList<String>();

我想将每个列表的第一个元素放在一个表格行中,然后将每个列表的第二个元素放在另一个表格行中,请你帮帮我,这是 xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableLayout
        android:id="@+id/tlMarksTable"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="5dip"
            android:weightSum="2" >

            <TextView
                android:id="@+id/tvMarksCompetitionID"
                android:layout_weight="1"
                android:text="Competition"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/tvMarksMarks"
                android:layout_weight="1"
                android:text="Marks"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <TextView
                android:id="@+id/tvMarksQuestionsNum"
                android:layout_weight="1"
                android:text="Questions"
                android:textAppearance="?android:attr/textAppearanceMedium" />
        </TableRow>
    </TableLayout>

</FrameLayout>

最佳答案

首先将您的 XML 文件更改为:

   <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableLayout
        android:id="@+id/tlMarksTable"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

    </TableLayout>
    </FrameLayout>

我们将动态添加所有内容。

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    List<String>competitoinsIDs = new LinkedList<String>();
    List<String>marks = new LinkedList<String>();
    List<String>numOfQuestions = new LinkedList<String>();

 //make sure that the lists contain data or else display will be blank screen

    TableRow.LayoutParams  params1=new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,1.0f);
    TableRow.LayoutParams params2=new TableRow.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
    TableLayout tbl=(TableLayout) findViewById(R.id.tlMarksTable);
    for(int ctr=0;ctr<marks.size();ctr++)
    {
    //Creating new tablerows and textviews
    TableRow row=new TableRow(this);
    TextView txt1=new TextView(this);
    TextView txt2=new TextView(this);
    TextView txt3=new TextView(this);
    //setting the text
    txt1.setText(competitoinsIDs.get(ctr));
    txt2.setText(marks.get(ctr));
    txt3.setText(numOfQuestions.get(ctr));
    txt1.setLayoutParams(params1);
    txt2.setLayoutParams(params1);
    txt3.setLayoutParams(params1);
    //the textviews have to be added to the row created
    row.addView(txt1);
    row.addView(txt2);
    row.addView(txt3);
    row.setLayoutParams(params2);
    tbl.addView(row);
    }

}

关于android以编程方式在tableRows中创建textViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11342975/

相关文章:

java - android studio 中使用哪种布局来精确放置剪贴画

java - 转到另一个选项卡时,选项卡式 android 应用程序崩溃(android -> java -> android studio)

android - Raspberry 不启动 android 东西

android - 如何在 Android 中使用 SharedPreferences 存储 boolean 值?

java - 为什么不能将 android.os.build.VERSION 解析为变量?

android imageview scaletype 不适用于 AnimationDrawable

android - 动画改变 LayoutParams (RelativeLayout)

android - AsyncTask 上的触发事件已完成

android - 使用软键盘上的 “ENTER” 键发起事件

java - Android 开发 - GestureDetector.OnGestureListener 或 GestureDetector.SimpleOnGestureListener