使用 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 ...
}