我的屏幕有4个带有tablelayout的标签。当我向SQLite询问数据时,由于 ugt 值而选择了标签。
当 ugt 等于1或2时,现在出现问题 - 数据在tab1和tab2之间分开并正常显示。
但是当 ugt 等于3或4时,所有4个标签上都会显示数据!数据与其他数据重叠。
以下是代码:
while (cursor2.moveToNext()) {
int id = cursor2.getInt(cursor2.getColumnIndex(LeaderBase.UID));
String name = cursor2.getString(cursor2.getColumnIndex(LeaderBase.USERNAME));
String money = String.valueOf(cursor2.getLong(cursor2.getColumnIndex(LeaderBase.USERMONEY)));
String speed = String.valueOf(cursor2.getLong(cursor2.getColumnIndex(LeaderBase.USERSPEED)));
String time = String.valueOf(cursor2.getLong(cursor2.getColumnIndex(LeaderBase.USERTIME)));
int ugt = (int)cursor2.getLong(cursor2.getColumnIndex(LeaderBase.UGAMETYPE));
TableRow row = null;
switch(ugt){
case 1:
row = (TableRow)inflater.inflate(R.layout.tablerow, tl1, false);
break;
case 2:
row = (TableRow)inflater.inflate(R.layout.tablerow, tl2, false);
break;
case 3:
row = (TableRow)inflater.inflate(R.layout.tablerow, tl3, false);
break;
case 4:
row = (TableRow)inflater.inflate(R.layout.tablerow, tl4, false);
break;
}
TextView tv1 = (TextView)row.findViewById(R.id.textView1);
TextView tv2 = (TextView)row.findViewById(R.id.textView2);
TextView tv3 = (TextView)row.findViewById(R.id.textView3);
TextView tv4 = (TextView)row.findViewById(R.id.textView4);
tv1.setText(name);
tv2.setText(money);
tv3.setText(time);
tv4.setText(speed);
switch(ugt){
case 1:
tl1.addView(row);
break;
case 2:
tl2.addView(row);
break;
case 3:
tl3.addView(row);
break;
case 4:
tl4.addView(row);
break;
}
}
这是截图。 谢谢你的回答!
答案 0 :(得分:0)
我认为你的switch块因为ugt中的意外值而输入默认值。检查你定义ugt的代码,或者你需要在交换机中添加一个默认值,如下所示。
switch(ugt){
case 1:
//some code;
break;
case 2:
//some code;
break;
case 3:
//some code;
break;
case 4:
//some code;
break;
default:
//deafult code that happens when ugt is not the value from the other cases.
break;
}
打印ugt的值,以便您可以确定。
答案 1 :(得分:0)
我找到了解决方案。我选择了这样的标签内容:
TabHost.TabSpec spec1 = tabs.newTabSpec("tag1");
spec1.setContent(R.id.tab1);
spec1.setIndicator("Без времени");
tabs.addTab(spec1);
但是tab1在ScrollView1中。所以我改变了所有字符串
spec1.setContent(R.id.tab1);
到
spec1.setContent(R.id.ScrollView1);