使用 ListVIew 在指定的 items上如何实现一个 listener 事件?

使用 ListVIew 在指定的 items上如何实现一个 listener 事件?

问题描述:

我创建了一个ListView,包含很多items,但是实际上我不确定在一个特定的items上如何实现一个listener事件?
我使用的下面的代码,但是当我点击任何items,一直显示的是相同的Activity。

list.setOnItemClickListener(new OnItemClickListener()
{
   public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id)                               
   {
      Intent i = new Intent(MainActivity.this, Activity2.class);
      startActivity(i);                                                                                                                                                                                   
   }
});

但是如果我在下面的代码中使用if语句,也没有用。

list.setOnItemClickListener(new OnItemClickListener()
{                                                                                                                                                             
   public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id)                             
      {                                                                                                                                                                           
         if(list.getItemAtPosition(position).equals(mStrings[0]))                                                       
         {                                                                                                           
            Intent i = new Intent(MainActivity.this, Activity2.class);                                                                                        
            startActivity(i);                                                                                
         }                                                                                                    
      }
});

首先 你的代码中都是相同的Activity
其次在OnItemClickListener类的方法

public void onItemClick(AdapterView<?> arg0, View arg1, int position,long id)  

中,第三个变量就给出了被点击的Item的位置

在 adapter 的 getView 方法中设置不同的监听器

在 position 上设置条件

if (position == 0) {
    ... start activity ...
}