我有一个活动,其中有一个带有两个标签的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
答案 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;
}
}