带有两个listview和自定义数组适配器的Tabhost,两个列表都显示相同的数据

时间:2011-05-19 15:59:33

标签: android android-listview

我有一个活动,其中有一个带有两个标签的TabHost。两个选项卡各有一个列表视图。该活动有一个按钮,它启动一个异步作业以从互联网获取数据,然后将数据分成两个数组适配器,每个列表视图一个。问题就出现了,列表视图都显示了第二个适配器的数据。

ArrayList<TestClass> detailsToCollect = new ArrayList<TestClass>();
ArrayList<TestClass> detailsToGive = new ArrayList<TestClass>();
for (TestClass TestClass : details) {
if(TestClass.getAmount()>0)
{
detailsToCollect.add(TestClass);
}
else
{
TestClass.setAmount(TestClass.getAmount()*-1);
detailsToGive.add(TestClass);
}
}
if(Double.parseDouble(amount)!=0)
{
imgView1.setVisibility(View.VISIBLE);
downloadFile(GetGraphURL(a, al),imgView1);
lstView1.setVisibility(View.VISIBLE);
lstView1.setAdapter(new CustomAdapter(Home.this,R.layout.detailsrow, detailsToCollect));
}
else
{
nodataCollect.setVisibility(View.VISIBLE);
}
if(Double.parseDouble(amountc)!=0)
{
imgView2.setVisibility(View.VISIBLE);
downloadFile(GetGraphURL(ac, alc),imgView2);
lstView2.setVisibility(View.VISIBLE);
lstView2.setAdapter(new CustomAdapter(Home.this,R.layout.detailsrow, detailsToGive));
}
else
{
nodataGive.setVisibility(View.VISIBLE);
}

有谁能告诉我这里有什么问题? 谢谢, Ashwani

2 个答案:

答案 0 :(得分:0)

我有一个类似的问题:Tab Host List Adapter and Lists,我还没有完全修复,但有一个想法是我为每个列表放置了一个非透明背景(图像)后我的布局变得更好了。在我以前看到4个列表之前,但现在我只看到一个,所以也许你的问题也可以通过这种方式修复。

答案 1 :(得分:0)

我已经通过处理tabhost的setOnTabChangedListener解决了这个问题。在这个监听器中,我将listviews再次绑定到它们相应的适配器。

public void onTabChanged(String arg0) {

                    int type = arg0=="tab_1"?1:0;
                    switch (type) {

                    case 1: 
                         lstView1.setAdapter(ListView1Adapter);
                          break;

                    default:
                         lstView2.setAdapter(ListView2Adapter);
                         break;
                    }

                }