我有 3 个选项卡,在我的一个选项卡中,我有一个ListView
从 SQLite 数据库中获取项目的选项卡。
问题是当我切换到其他选项卡并返回此选项卡时,我ListView
正在显示数据库项目 2 次,并且每次更改选项卡时它都会成倍增加。
这是我的标签显示代码ListView
:
public class MyActivity extends Fragment
{
private ListView mListView;
private DatabaseHandler db;
List my = new ArrayList();
MyListAdapter madapter ;
//.....
//...
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
MyItem i;
LinearLayout mylayout = (LinearLayout) inflater.inflate(R.layout.my_layout, container, false);
List<MyItem> l = db.getAllMyItem();
while(!l.isEmpty() )
{
i = l.get(0);
l.remove(0);
my.add(new MyList(i.getName(),0));
}
mListView = (ListView) mylayout.findViewById(R.id.list);
madapter = new MyListAdapter(getActivity(), my);
mListView.setAdapter(madapter);
}
我知道这是我的while
循环,它一次又一次地从数据库中获取结果,但是我能做些什么来显示我从数据库中检索到的结果一次,即使在更改选项卡并返回此Fragment
选项卡之后也是如此。