Articles of listview

Force Listview不重用视图(Checkbox)

我为Listview每个项目创建了一个自定义Listview (没有覆盖getView()方法),具有以下布局 contactlayout.xml 我使用SimpleCursorAdapter以下列方式填充Listview … Cursor c = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); String from[] = new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone.CONTACT_ID}; int to[] = new int[]{R.id.name,R.id.phone,R.id.contactid}; SimpleCursorAdapter s = new SimpleCursorAdapter(this,R.layout.contactlayout,c,from,to); lv.setAdapter(s); 单击按钮我正在读取所有checkbox的状态。 问题是,如果我检查一个CheckBox其他几行就会自动检查。 我知道这是重用Views。 我该如何避免呢? 在这种情况下我甚至没有覆盖getView()方法,所以我想知道是否仍有任何方法可以实现我想要的东西? 回答 最后我实现了@sastraxi建议的内容…… @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); final CheckBox checkBox = (CheckBox) […]

将文本垂直居中于列表视图行

我正在尝试使用文本和每行的图像制作列表视图。 图像应该在右边,文本应该是行的其余部分。 文本应该以verticaly为中心。 除了中心部分,我可以做到这一切。 这是我尝试多次失败后的情况: 无论文本总是显示在行的顶部。 我已经看到一些报道说这可能是因为xml在手动完成时的膨胀方式。 但我不这样做。 我把它留给框架。

Listview使用通用图像加载器重新加载已加载的图像

在我的Android项目中,我显示了从web service(Url)到ListView所有图像,为此我使用了Universal image loader 。 如果我向下滚动然后向上滚动,则在List中加载一些图像后,已经加载的图像将再次重新加载。 DisplayImageOptions.Builder displayImageOptionsBuilder = new DisplayImageOptions .Builder().cacheOnDisk(true).cacheInMemory(true).considerExifParams(true); ImageLoader.getInstance().displayImage(imageUri, imageView, displayImageOptionsBuilder.build()); 我尝试了什么 ImageAware imageAware = new ImageViewAware(imageView, false); ImageLoader.getInstance().displayImage(imageUri, imageAware,displayImageOptionsBuilder.build()); 即使使用此代码,它也不会在ListView reloading进行任何更改 编辑 适配器类 @Override public View getView(int position, View convertView, ViewGroup parent) { final String name = getItem(position); View view = convertView; if (view == null) { view = createView(); […]

android中ListView行的动态高度

我看到我的ListView有一种奇怪的行为,我似乎无法绕过它。 我有一个ListView,其中填充了一些数据。 每行包含一个图像和三个文本标签。 这是我的行的XML(我在Adapter的getView方法中膨胀它): 现在,进入文本字段的任何内容都可以是任何长度(从几个字符到80-100个字符),我希望标签只是换行,并且要扩展行的高度以适应包装标签的高度。 然而,标签确实包好,但行的高度不会扩大,因此标签的底部会被切断。 这是我的getView方法: @Override public View getView(int position, View convertView, ViewGroup parent) { SetInfo app = (SetInfo)getItem(position); if(app == null) return null; LinearLayout row = (LinearLayout) (convertView == null ? LayoutInflater.from(context).inflate(R.layout.listitem, parent, false) : convertView); ((TextView)row.findViewById(R.id.TxtName)).setText(app.getName()); ((TextView)row.findViewById(R.id.TxtPackage)).setText(app.getPackage()); ((TextView)row.findViewById(R.id.TxtSource)).setText(app.getSource()); if(app.getIcon() != null) ((ImageView)row.findViewById(R.id.Icon)).setImageDrawable(app.getIcon()); return row; } 如何让行具有不同的高度,自动调整以适应所有内容?

ListView Viewholdercheckbox状态

我的ListView自定义适配器(及其新实现的viewHolder)存在一些问题。 我有一个ListView,每个项目都有一个checkbox(这里没什么新东西)。 问题是,如果我的列表中有超过9个项目,当我检查第一个checkbox时,将自动检查第十个(第二个与第十一个相同),就像两个项目都有一个监听器一样(和我相信它是某种情况下的情况)。 我在这里阅读了关于listView的位置问题,查看回收和ViewHolder解决方法: 如何让我的ArrayAdapter遵循ViewHolder模式? 但我可能做错了,因为它不起作用…… public class PresenceListAdapter extends SimpleAdapter { private LayoutInflater inflater; private List ids; private List statuts; public PresenceListAdapter (Context context, List<? extends Map> data, int resource, String[] from, int[] to, List ids, List statuts) { super (context, data, resource, from, to); inflater = LayoutInflater.from (context); this.ids = ids; this.statuts= statuts; […]

ListView下面的LinearLayour不可见

为什么只有ListView可见?

排序Android ListView

我只是从Android开发开始,虽然Milestone是一个不错的设备,Java不是我的自然语言,我在Android SDK,Eclipse和Java本身的Google文档上都很挣扎。 无论如何… 我正在为Android编写一个微博客户端,以配合我的Windows客户端(MahTweets)。 目前我的推文一直在进行,但问题出在UI上。 初始调用将正确订购商品(从最高到最低) 3 2 1 刷新时 3 2 1 6 五 4 在处理推文后,我正在调用adapter.notifyDataSetChanged(); 最初我认为适配器上的getItem()需要排序(下面的代码是我最终得到的),但我仍然没有运气。 public class TweetAdapter extends BaseAdapter { private List elements; private Context c; public TweetAdapter(Context c, List Tweets) { this.elements = Tweets; this.c = c; } public int getCount() { return elements.size(); } public Object getItem(int position) { […]

过滤后的ListView onItemClick会在原始位置返回Item

我有一个listview,其中自定义行是从自定义BaseAdaptor填充的。 点击任意一行,我打开一个新的Activity 。 在我将filterfunction添加到此列表之前,一切正常。 当我搜索列表然后单击一个项目时,它不会打开与过滤结果相关联的活动。 它会打开与原始列表中该位置的项目相关的活动。 例如。 – 原始列表:AA,BA,CC,DA,ED,FF 搜索:’A’过滤结果:AA,BA,DA 但是当我点击项目DA它会打开活动的CC 。 极度刺激。 我在适配器上调用了notifyDataSetChanged() 。 我一直坚持这个问题。 我真的不知道如何解决它。 我没有发布代码,因为它是一大堆代码,我真的不想把所有东西都放在这里。 如果有人可以让我知道如何从FILTERED列表中选择项目..它很棒。 谢谢! 告诉我是否需要其他东西来理解我的问题!

ListView Android中的列

如何在Android ListView中创建列? 我有这个列表项布局xml: 问题是当f.ex. wind_direction从“4”变为“300”,然后列不对齐。 问题http://img185.imageshack.us/img185/2812/deviceo.png 谁可以用固定宽度的列制作并使用与设备无关的整个宽度?

在ListView中为列表项设置animation

我尝试在ListView中为新项目制作animation。 我有稳定的id-s,所以我确切知道要animation的元素。 问题来自ListView的循环机制。 当我知道我有一个最近插入的元素时,我在视图上调用startAnimation。 但随后,视图得到了回收,充满了不同的数据。 它会在UI上为错误的行设置animation。 在某些时候,视图持有正确的数据,但后来被回收。 我通过logcat证实了这一点。 有什么方法可以解决这个问题吗? 编辑: public ExpensCursorAdapter(Context context, Cursor c, boolean autoRequery, CopyOnWriteArraySet fadeAnimateTags) { super(context, c, autoRequery); this.mFadeAnimTags = fadeAnimateTags; } @Override public boolean hasStableIds() { return true; } @Override public void bindView(View view, Context context, Cursor cursor) { setup(view, context, cursor); } private void setup(View view, Context context, […]