我在运行时创建一个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>
答案 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);
我会暂时用测试字符串替换你的数据库内容,以便缩小错误,查看它是否仍然失败,如果没有,就可以处理上面提到的事情,再次测试,如果现在正在工作,请替换临时带有数据库内容的文本字符串。