Android中的onItemClick中的“int”和“long”参数有什么区别?

前端之家收集整理的这篇文章主要介绍了Android中的onItemClick中的“int”和“long”参数有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我们实现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

猜你在找的Android相关文章