有没有办法检测首次创建item
ListView
的时间?
我只想在第一次创建ListView
项目时编写代码,如果列表已被回收一次,则代码不应执行。
答案 0 :(得分:2)
你的问题有些含糊不清。我假设你的意思是:“第一次为位置创建一个视图项目 列表中的N“。
您应该做的如下:
class MyAdapter {
private HashMap<Integer, Integer> processedPositions = new HashMap<Integer, Integer>();
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (!processedPositions.containsKey(position)) { // < ------------------
first time logic......
processedPositions.put(position, position); // and mark as processed
else {
later times logic....
}
}
答案 1 :(得分:1)
我假设您知道ListView项目的工作原理。 每次当convertView在下一个方法中为null时,项目都由List创建:
public View getView(int position, View convertView, ViewGroup parent) {
但我认为你需要为每件物品展示一次。
在这种情况下,您可以创建整数列表,并执行以下操作:
public View getView(int position, View convertView, ViewGroup parent) {
......
if(listOfPositions.contains(position)){
// we was here.
firstTimeVisibleView.setVisibility(View.GONE);
}else{
//do what you want.
listOfPositions.add(position);
firstTimeVisibleView.setVisibility(View.VISIBLE);
}
......
}
答案 2 :(得分:-1)
创建listview并使用此伪代码。
if (listView.getcount == 0)
{
//code to execute
}