ListView项目仅限第一次

时间:2014-07-06 15:05:55

标签: java android xml listview

有没有办法检测首次创建item ListView的时间?

我只想在第一次创建ListView项目时编写代码,如果列表已被回收一次,则代码不应执行。

3 个答案:

答案 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
    }