如何在android中创建动态水平表行?

时间:2012-01-27 07:30:23

标签: java android

我目前的代码是:

for(int i=0;i<jArray.length();i++){
            JSONObject json_data = jArray.getJSONObject(i);
            String b = json_data.getString("examnames");
            JSONObject getexamnamesobject = new JSONObject(b);
            getexamnames=getexamnamesobject.getString("types");
            TableRow tr = new TableRow(this);
            TextView tv1 = new TextView(this);
            createView(tr,tv1,getexamnames);
            t1.addView(tr);
        }
public void createView(TableRow tr, TextView t, String viewdata) {
        t.setText(viewdata);
        //adjust the porperties of the textView
        t.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        //t.setTextColor(Color.DKGRAY);
        //t.setBackgroundColor(Color.CYAN);
        t.setPadding(20, 0, 0, 0); 
        tr.setPadding(0, 1, 0, 1); 
        //tr.setBackgroundColor(Color.BLACK);
        tr.addView(t); // add TextView to row.
        }

上面代码的输出是,我正在垂直获取文本视图:

English
Maths
Science

上述编码的变化必须是这样得到水平输出:

English Maths Science

请帮帮我。这对我来说非常重要 提前致谢

3 个答案:

答案 0 :(得分:1)

您正在为jArray中的每个项目创建一个TableRow并将其添加到TableLayout一次。您的createView方法向该行添加一个字符串:jArray(getexamnamesobject.getString("types"))中相应项目的json对象上的“types”键的值。

您可能需要循环并使用StringBuilder收集所有“类型”字符串,并将它们放在一个TableRow中。

答案 1 :(得分:1)

您的新LayoutParams应该是新的TableRow.LayoutParams。 “裸”LayoutParams的视图无法一个接一个地堆叠。

答案 2 :(得分:1)

将setStretchAllColumns()和setShrinkAllColumns()设置为表格布局。并使表格布局的方向为“水平”。