当我们实现OnItemClickListener时,我们必须实现onItemClick方法,它是OnItemClickListener接口中的抽象方法.在onItemClick方法中有四个参数.
public void onItemClick(AdapterView<?> arg0,View arg1,int arg2,long arg3) { Toast.makeText(this,"Clicked on : " + arg2 + " long arg : " + arg3,Toast.LENGTH_LONG).show(); }
我需要知道的是最后两个参数(int arg2,long arg3)之间的区别.正如你可以在我的代码中看到的那样,当我尝试Toast时,我会为这两个参数获得相同的值.
解决方法
我和你有同样的问题.但是,这里的答案并不是非常有帮助.我真的不真的支持自己的答案,特别是当所谓的文档如此不清楚.我自己找了,但是,以下是我发现的.也许这会节省一些时间.
int值是父视图中的位置.对于ListView,它是行号.顶行是位置0,第二行是位置1,第三行是位置2等.请注意,如果您的ListView具有标题视图(例如,如果您执行了ListView.addHeaderView(View)),则标题视图将位置0,实际行将从1开始编号.
有时,长的值与int位置相同,有时它是不同的.如果您使用的是ArrayAdapter或SimpleAdapter,那么它们是相同的(除了有一个标题视图,然后它们被一个关闭).对于CursorAdapter(并因此SimpleCursorAdapter),long id返回表的行ID,即_id.这是一个很长的而不是一个int,因为数据库理论上可以拥有比int可以容纳更多的行,而ListView不会.
以下是其他一些相关的答案:
> https://stackoverflow.com/a/25622142/3681880
> https://stackoverflow.com/a/9863279/3681880
> https://stackoverflow.com/a/12966006/3681880
> https://stackoverflow.com/a/24531354/3681880
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。