2011-05-15 132 views
0

我有一个列表视图,它由来自我写的“Offer”类的对象填充。显然,toString()方法被调用,这是每个列表项中显示的文本。我的问题是,我该如何实现一个onItemClickListener,它将调用我的getter或setter方法之一,这个方法在其toString方法已被用于填充该项目的特定对象上?例如,我想提出一个敬酒或东西,当一个项目被点击,检索一个字符串我的getClaimCode()方法,并显示在吐司(或任何其他对话框,甚至是一个新的活动)。对ListView中的对象调用方法

我可以用item.getClaimCode()这样的方法调用方法吗?

回答

0

您不必实现AdapterView.OnItemClickListener,但是我在onCreate()中调用myListView.setOnItemClickListener(this)。

那么对于AdapterView.OnItemClickListener接口,我有方法:

@Override 
public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) { 
    //Code 
} 

对你来说,你可以这样做:

@Override 
public void onItemClick(AdapterView<?> arg0, View v, int arg2, long arg3) { 
    //Arg2 is the position in the list so... 
      OfferObject offer = (OfferObject) arg0.getItemAtPosition(arg2); 
      //Go to town... 
} 

当然,你的活动没有落实AdapterView.OnItemClickListener,您可以即时创建侦听器。

yourList.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 
     OfferObject offer = (OfferObject) arg0.getItemAtPosition(arg2); 
     //Same idea here... 
    } 

});