gpt4 book ai didi

java - 每次应用程序运行时,listView 项目都会重复并变得越来越多

转载 作者:行者123 更新时间:2023-12-02 02:42:38 26 4
gpt4 key购买 nike

我正在为Android实现一个示例应用程序,在 ListView 中我不使用 View 持有者,所以我无法从其他答案中得到答案。每次运行应用程序时,我的 ListView 项目都会重复并变得更多,除非我从模拟器中卸载应用程序。这是我的代码,在第一个类中我声明 ListView 并设置适配器,下一个类是自定义适配器(我删除了不必要的函数):

public class CrimeListFragment extends Fragment {
private ListView crimesListView;
private CrimeAdapter adapter;

@Override
public void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}

@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View CrimesList=inflater.inflate(R.layout.fragment_crime_list,container,false);
crimesListView=(ListView) CrimesList.findViewById(R.id.crimesList);
adapter=new CrimeAdapter(inflater.getContext(),R.layout.list_item_crime,CrimeLab.get(inflater.getContext()).getCrimes());
crimesListView.setAdapter(adapter);


}
public class CrimeAdapter extends ArrayAdapter {
Context _context;
List<Crime> _crimes;
static Crime currentCrime;
public CrimeAdapter( Context context, int resource, List crimes) {
super(context, resource, crimes);
_context=context;
_crimes=crimes;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
View _convertView = convertView; // re-use an existing view, if one is available
if (_convertView == null)
_convertView= ((Activity)_context).getLayoutInflater().inflate(R.layout.list_item_crime,null);

currentCrime=_crimes.get(position);
((TextView)_convertView.findViewById(R.id.crimeTitleText)).setText(currentCrime.getTitle().toString());
((TextView)_convertView.findViewById(R.id.crimeDateText)).setText(currentCrime.getCrimeDate().toString());
((ImageView)_convertView.findViewById(R.id.crimeImageSolved)).setVisibility(currentCrime.getSolved() ? View.VISIBLE : View.GONE);


return _convertView;
}
public void setCrimes(List<Crime> crimes){
_crimes=crimes;
}
}

最佳答案

改变

_convertView= ((Activity)_context).getLayoutInflater().inflate(R.layout.list_item_crime,null);

_convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_crime, parent, false);

关于java - 每次应用程序运行时,listView 项目都会重复并变得越来越多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57168380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com