3
此之前已經問過,但我沒有發現任何解決方案,我又工作:行添加到表中沒有顯示出來
當添加行從代碼表,該行沒有在顯示出來應用。我用XML指定了一行,一行顯示,但沒有顯示。
這是代碼,我已經添加了我的類的構造函數,以及:
private LayoutInflater theInflater;
private LinkedList<View> rows;
private Context thisContext;
public DistanceTableView(LayoutInflater vi, Context context)
{
theInflater = vi;
rows = new LinkedList<View>();
thisContext = context;
}
public void addRow(LocationMessage locationMsg){
View messageView = theInflater.inflate(R.layout.homepage, null);
TableLayout table = (TableLayout)messageView.findViewById(R.id.distanceTable);
TextView senderNameTextView = new TextView(thisContext);
senderNameTextView.setText(locationMsg.getSenderName());
TableRow tr = new TableRow(thisContext);
tr.addView(distanceTextView);
table.addView(tr);
rows.addFirst(messageView);
}
homepage.xml包含此,我刪除了一些元素和參數:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout>
<TabHost>
<TabWidget />
<FrameLayout>
[..]
<LinearLayout>
[..]
<TableLayout
android:id="@+id/distanceTable"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:background="#DDDDDD"
android:stretchColumns="1" >
<TableRow>
<TextView
android:textColor="#000000"
android:text="@string/label_device"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:textColor="#000000"
android:text="@string/label_distance"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
<TextView
android:textColor="#000000"
android:text="@string/label_time"
android:layout_gravity="center"
android:padding="3dip"
android:textSize="18sp" />
</TableRow>
</TableLayout>
</LinearLayout>
</FrameLayout>
</TabHost>
</LinearLayout>
不幸的是hierarchyviewer .bat不適用於我,以檢查行是否存在,但不可見。在調試器中,它對我來說看起來很好。
是你的`Activity`中的`addRow()`方法嗎?什麼是「行」 - 它是如何初始化的以及addFirst()是做什麼的? `thisContext`如何初始化? – 2011-01-31 16:16:36
我在上面的問題中擴展了代碼部分。 `rows`是Views的LinkedList。我已經添加了構造函數初始化的東西。 `addRow()`在一個擴展了`MapActivity`的類中。 – Lars 2011-02-01 10:05:00