Tabview内容重叠

时间:2014-03-05 11:02:27

标签: android android-layout

我的屏幕有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;
            }

        }

这是截图。 enter image description here 谢谢你的回答!

2 个答案:

答案 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);