TableRow不显示所有TextView

时间:2011-06-05 13:13:14

标签: android

我在运行时创建一个TableRow。我遇到的麻烦是我创建了6个TextView并添加到TableRow但由于某些原因只出现了3个TextView,第1个和最后一个。我知道将TextView添加到TableRow是没有问题的,因为如果我注释掉最后两个TextView,那么第四个仍会覆盖第三个。因为这似乎是我可以添加到此TableRow的列数的某处。

我出错的任何想法?

这是我的java

public class locationlist extends Activity {
    /** Called when the activity is first created. */
    private locationListDbAdapter mDbHelper;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.locationlist);
        mDbHelper = new locationListDbAdapter(this);
        mDbHelper.open();

        String id = mDbHelper.fetchRow(1).getString(0);
        String locationText  = mDbHelper.fetchRow(1).getString(1);
        String localCode = mDbHelper.fetchRow(1).getString(2);
        String localService = mDbHelper.fetchRow(1).getString(3);
        String localComments = mDbHelper.fetchRow(1).getString(4);
        String localNextes = mDbHelper.fetchRow(1).getString(5);



        TextView idView = new TextView(this);
        idView.setText(id);
        TextView locationView = new TextView(this);
        locationView.setText(locationText);
        TextView codeView = new TextView(this);
        codeView.setText(localCode);
        TextView serviceView = new TextView(this);
        codeView.setText(localService);
        TextView commentsView = new TextView(this);
        codeView.setText(localComments);
        TextView nextesView = new TextView(this);
        codeView.setText(localNextes);

        TableLayout tl = (TableLayout)findViewById(R.id.tableLayout1);
        TableRow r2 = new TableRow(this);


        r2.addView(idView);
        r2.addView(locationView);
        r2.addView(codeView);
        r2.addView(serviceView);
        r2.addView(commentsView);
        r2.addView(nextesView);
        tl.addView(r2);

        this.setContentView(tl);

这是我指向

的xml文件
<?xml version="1.0" encoding="utf-8"?>

    <TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content">
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1" android:layout_width="fill_parent">
            <TextView android:id="@+id/textView11" android:layout_height="wrap_content" android:text="ID" android:layout_width="0dip" android:layout_weight="0.1"></TextView>
            <TextView android:id="@+id/textView1" android:layout_height="wrap_content" android:text="Location" android:layout_width="0dip" android:layout_weight="0.4"></TextView>
            <TextView android:id="@+id/textView2" android:layout_height="wrap_content" android:text="Type" android:layout_width="0dip" android:layout_weight="0.15"></TextView>
            <TextView android:id="@+id/textView3" android:layout_height="wrap_content" android:text="Service" android:layout_width="0dip" android:layout_weight="0.2"></TextView>
            <TextView android:id="@+id/textView4" android:layout_height="wrap_content" android:text="Comments" android:layout_weight="0.3" android:layout_width="0dip"></TextView>
            <TextView android:id="@+id/textView5" android:layout_height="wrap_content" android:text="ES" android:layout_width="0dip" android:layout_weight="0.15"></TextView>
        </TableRow>
            <View
        android:layout_height="2dip"
        android:background="#FF909090" />
    </TableLayout>

1 个答案:

答案 0 :(得分:1)

为什么你有以下几行?您将codeView TextView设置为localCode的文本,然后在没有明显原因的情况下覆盖三次:

codeView.setText(localCode);
codeView.setText(localService);
codeView.setText(localComments);
codeView.setText(localNextes);

您的serviceView,commentsView和nextesView TextView都显示为空白,您从不这样做:

serviceView.setText(localService);
commentsView.setText(localComments);
nextesView.setText(localNextes);

我会暂时用测试字符串替换你的数据库内容,以便缩小错误,查看它是否仍然失败,如果没有,就可以处理上面提到的事情,再次测试,如果现在正在工作,请替换临时带有数据库内容的文本字符串。