如何在android嵌入式卡中设置TEX()

时间:2015-02-27 16:41:40

标签: android xml sqlite android-layout

这里我有一个很好的简单表格布局来显示我的数据库的内容。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="horizontal">

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/tableLayout1">

    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Date"
            android:id="@+id/Date"
            android:layout_weight="0.3333"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Systolic"
            android:id="@+id/Systolic"
            android:layout_weight="0.3333"
            android:textAlignment="center" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Diastolic"
            android:id="@+id/Diastolic"
            android:layout_weight="0.3333" />
    </TableRow>
    <TableRow>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/DateInfo"
            android:layout_weight="0.3333"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/SystolicInfo"
            android:layout_weight="0.3333"
            android:textAlignment="center" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/DiastolicInfo"
            android:layout_weight="0.3333" />
    </TableRow>
</TableLayout>

以下是在调用活动的onCreate中调用的方法:

private View buildView() {
    //CardBuilder card = new CardBuilder(this, CardBuilder.Layout.MENU);
    //card.setText("It worked!!!");
    CardBuilder previousReadings = new CardBuilder(this, CardBuilder.Layout.EMBED_INSIDE);
    previousReadings.setEmbeddedLayout(R.layout.blood_pressures);

    TextView tv = (TextView) findViewById(R.id.SystolicInfo);
    //tv.setText("Why won't this work?");
    MyDatabase info = new MyDatabase(this);
    info.open();
    String data = info.getData();
    info.close();
    System.out.println(data);
    //tv.setText(data);

    return previousReadings.getView();
    //return card.getView();
}
}

我使用了CarBuilder对象卡,这是一张没有嵌入式布局的简单卡,这很好用。然后我评论它并试图实现嵌入式卡也很好(上图)。但是当我尝试使用tv.setText()时会出现问题。这只是一个常数还是“数据”变量。 logcat读取“无法加载Activity:...空指针异常。

有人能解释一下这个问题吗?我已经尝试过EditTexts和TextViews,但都没有工作。提前谢谢。

1 个答案:

答案 0 :(得分:2)

使用previousReadings.getView()调用findViewById从卡访问TextView:

....
System.out.println(data);
View view= previousReadings.getView();
TextView tv = (TextView)view.findViewById(R.id.SystolicInfo);
tv.setText("Why won't this work?");
return view;