- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数组,需要根据单击了 listView 中的哪个项目来访问其元素。
发送到 getView() 方法的第一个 int 值,即 int arg0 是已单击的数组元素的 ID 吗?我需要在 ClickListner 上的 ListView 中分配 ID 吗?
public View getView(int arg0, View arg1, ViewGroup arg2) {
}
我相信还必须实现以下两个重写方法:
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
目前,我的应用程序只允许我访问数组的元素 0(第一个元素),因此我相信无论单击 ListView 中的哪个项目,它都会忽略其他 19 个元素。
private List<GeoName> names = new ArrayList<GeoName>();
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
GeoName location = this.names.get(arg0);
Location l = location.getGeometry().getLocation();
Latt = l.getLat();
Longg = l.getLng();
从上面的代码来看,当调用name.get()'方法时,是否应该自动为'arg0'分配元素ID值?
最佳答案
ListView 中的每个项目都是一个 View ,getView 负责为 Listview 创建这些 View 。以下是 Android 文档的摘录:
public abstract View getView (int position, View convertView, ViewGroup parent)
**Parameters**
position: The position of the item within the adapter's data set of the item whose view we want. convertView: The old view to reuse, if possible. Note: You should check that this view is non-null and of an appropriate type before using. If it is not possible to convert this view to display the correct data, this method can create a new view. Heterogeneous lists can specify their number of view types, so that this View is always of the right type (see getViewTypeCount() and getItemViewType(int)). parent : The parent that this view will eventually be attached to
以下是有关如何为 ListView 实现监听器的示例代码 fragment :
lv = (ListView) findViewById(R.id.listview);
lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listview_array));
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View v, int position, long id)
{
AlertDialog.Builder adb = new AlertDialog.Builder(
ListviewOnclickExample.this);
adb.setTitle("ListView OnClick");
adb.setMessage("Selected Item is = "+ lv.getItemAtPosition(position));
adb.setPositiveButton("Ok", null);
adb.show();
}
});
我建议您使用ConvertView和ViewHolder样式来使您的Listview更加高效。 Here是一个很好的链接,描述了这种风格的工作原理。您可以从我的这种风格的实现中下载完整的示例 here
关于java - 了解 'getView()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15125723/
我想要自定义微调器,在下拉列表中包含图像和 TextView ,因此我创建了不同的布局并对其进行了膨胀,其工作正常,但对于按微调器之前的微调器布局,我只想有一个类似“选择”的文本来自列表”但是当我用
所以我正在开发实时 ListView ,我需要 ListView 在单击按钮时更新,这些也是如此: private void ReloadData(){ DataList.clear();
我知道其他人也问过这个问题,但我看过其他解决方案,但仍然无法使其发挥作用。 适配器代码: private class CustomTextAndImageAdapter extends ArrayAd
我有一个通过 asynctask 填充的自定义 ListView 适配器,我在 onprogress 函数中调用 notificationdatasetchanged,并且 getCount() 返回
我正在显示联系人列表。一切都很好,除了设备有 1620 个联系人,所以列表滚动非常慢,甚至有时会挂起。 请帮帮我。 我尝试使用检查 ConvertView!=null 的 getView 方法,但它总
我想在每张图片下方添加一个文本,这是我的实际代码: @Override public View getView(int position, View convertView, ViewGroup pa
我在 Adapter extensions override of getView 中经常看到这一点: @Override public View getView(int position,
我正在尝试在对话框中制作 ListView 。但是我的适配器中的 getView 函数永远不会被调用。有什么想法吗? 适配器: public class DialogAdapter extends B
我有 public class MainActivity extends FragmentActivity 我编写了实现 AsyncResponse 的 Loader 类: public class
我有这样一段代码:)我想编辑我的自定义首选项布局的文本属性。但是从 getView 函数对对象所做的任何更改都不会影响首选项屏幕中的实际列表。有任何想法吗?我知道我不能扩展 PreferenceScr
我有一个扩展 simplecursoradapter 的适配器。新 View 应该从数据库中获取光标和图像,用几个复选框填充列表。出于某种原因,我似乎看不到,我的 getView 甚至没有被调用。我在
谁能解释一下这两种 getView() 实现之间的区别是什么? 第一个简单地检查 convertView 是否为 null;如果它为 null,则膨胀一个新的 View 对象。然后给子View设置合适
我做了一个 SingleItemAdapter extends ArrayAdapter,这个定制的 Adapter 用于 ListView。 在这个 SingleItemAdapter 中,我做了一
这里是相当新的 Android 开发者。 我遇到了一个奇怪的问题,我不确定如何解决。我在这里阅读了很多问题,听起来它们与我遇到的问题相同,但他们问题的解决方案似乎永远不适用于这里发生的事情。 我使用扩
我有一个带有 ListFragment 的自定义适配器,但根本没有调用适配器 getView()。 这是适配器的样子 - public class ModuleListItemAdapter exte
我正在将自定义 SimpleCursorAdapter 设置为 ListView。出于某种原因,对于数据库中的每个项目,FriendAdapter 的 getView() 被调用两次。经过一些调查(我
我有一个包含自定义适配器和自定义行的列表。 问题是当我滚动 ListView 时,图像位于错误的位置... 这是自定义行 xml: 这是 GetView: List it
public View getView(int index, View view, ViewGroup parent){ if (view == null) { // for the firs
我添加了两个按钮(添加和删除)来控制 ListView ,当我删除一个项目时,该项目不会立即在 ListView 中消失,只有当我在 ListView 上滑动时,新项目才会消失。除非我触摸屏幕或在 L
我已经多次尝试在我的 Controller 上使用 this.getView(),但我总是在我的控制台上收到 getView is not a function 错误。 是否有任何“技巧”或我可以做的
我是一名优秀的程序员,十分优秀!