Articles of listview

SwipeRefreshLayout干扰setOnScrollListener

每次我向上或向下滚动列表,我都用OnScrollListener隐藏(或取消隐藏)一些视图。 这是附加到我的ListView的代码。 lv.setOnScrollListener(new OnScrollListener() { private int mLastFirstVisibleItem; private boolean mIsScrollingUp = true; private LinearLayout ll = (LinearLayout) getActivity() .findViewById(R.id.llSearchPlaces); @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (view.getId() == lv.getId()) { final int currentFirstVisibleItem = lv .getFirstVisiblePosition(); if (currentFirstVisibleItem > […]

ListView是非常慢的android

我想从资源目录中显示图像(所有这些都是以png格式保存)在我的ListView ,但它是非常滞后的。 我是一个完整的noob,所以我需要帮助与asynchronous任务,以消除滞后。 列表适配器: public class MyListAdapter extends ArrayAdapter < SettingsItem > { Context context; List < SettingsItem > items; public MyListAdapter(Context context, int resource, List < SettingsItem > objects) { super(context, resource, objects); this.context = context; items = objects; } @Override public View getView(int position, View itemView, ViewGroup parent) { ViewHolder holder; if (itemView […]

asynchronous删除ListView / RecyclerView项目的最佳做法

我有一个CursorLoader ListView 。 用户可以打开ListView项目(打开另一个Fragment )或删除项目。 所有数据库操作都是asynchronous发生的,通常只需要几分之一秒的时间。 但从技术上讲,用户可以删除一个项目,然后在删除callback和导致错误之前打开该项目。 处理这个问题的最好方法是什么? 这里是我看到的选项。 假设AsyncTask总是会很快发生,以避免出现问题 在UI线程上执行数据库操作 在AsyncTask之前使ListView无效(但这会在UI中导致闪存) 在AsyncTask阻止用户input 编辑:我结束了使用RecyclerView但我不能调用adapter.notifyItemRemoved(itemPos)直到我已经从数据库中删除项目。

基于ListItem特定variables在ListItem上膨胀布局

我正在使用SimpleCursorAdapter和ListView来显示一些使用Loader加载的数据。 在cursor内部,我有一个int从0到3的项目。 我想这个int等于0-1的项目有一个布局(右alignment,一种颜色)和2-3项目有另一个布局(左alignment,另一种颜色)。 much like a chat app, where sent messages are on the right and received ones are on the left. 有一个简单的方法来做到这一点? 像一个开关,其中0-1充气layout_1和2-3我膨胀layout_2。 编辑:我已经添加了我试图填充ListFragment的代码。 用作开关的int是MyContentProvider.Data.E_TYPE。 我无法得到它的窍门,但也许有人可以清楚地解释我要写的东西! import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.corsalini.survcontr.MyContentProvider.Data; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.support.v4.content.CursorLoader; import android.support.v4.app.LoaderManager; import android.support.v4.content.Loader; import android.support.v4.widget.CursorAdapter; import android.support.v4.widget.SimpleCursorAdapter; import android.util.Log; […]

顶部和底部的TextViews,剩余的空间用ListView填充

我想把一个TextView的顶部,另一个底部,和一个ListView之间使用剩余的空间。 但是,我的ListView将所有的空间都放在最下面,使得最后的TextView不能显示出来。 我可以使它显示出来的唯一方法是给ListView一个固定的高度,如100dp。 我的布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/id_task_list_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/title_task_list" style="?android:attr/listSeparatorTextViewStyle" /> <ListView android:id="@+id/id_task_list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/id_task_list_title" /> <TextView android:id="@+id/id_task_list_test" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/id_task_list_view" android:text="OMG Test" /> </RelativeLayout>

为listview设置长时间点击侦听器

我有以下代码: public class MainActivity extends ListActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } protected void onListItemClick(ListView l, View v, final int position, long id) { super.onListItemClick(l, v, position, id); }} 我需要改变这onListItemLongClick(),但如何? 可能吗?

设置专注于Android中的任何项目的ListView

我有一个列表视图,其中包含textviews作为其元素。 现在,我希望启动应用程序时,列表中的第一项将自动聚焦 当我点击一些其他的视图,例如一个button,我怎么能把重点放在列表中的任何项目?

Android单击listItem检查错误的checkbox

我已经通过扩展SimpleCursorAdapter创build了一个自定义ListView。 结果是IMAGE + CheckedTextView(文本+checkbox)。 当我长时间点击一个项目,一切工作正常 – 我得到正确的ID和点击项目的细节。 当我尝试将一个项目标记为已选中但是它检查错误的checkbox时,就会出现问题。 例如:我有9个项目在我的名单,sorting1-9。 如果我点击listItem 1,第9行的checkbox正在被检查。 如果我点击第4项,第6行的checkbox正在被检查,如果我点击中间线,它正在被检查。 很明显,我在这里错过了一些东西:)记得当我长时间点击行(contextMenu打开),一切都很好。 这是听众: lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { CheckedTextView markedItem = (CheckedTextView) view.findViewById(R.id.btitle); if (!markedItem.isChecked()) { markedItem.setChecked(true); } else { markedItem.setChecked(false); } } }); 感谢任何帮助! 让我知道如果你需要我发布更多的代码。 谢谢! 顺便说一句,如果我点击多个… PARTY继续…没有明显的顺序… 编辑:适配器代码 public class ImageCursorAdapter extends […]

与标题,图像和文本列表视图?

我需要做一个左侧的图像列表视图,标题右侧的图像和描述下。 我已经检查了文档中的列表视图,但我似乎无法find一个这样的例子。 我有一个在XML中定义的选项卡视图(按照android示例tabs1),列表视图作为第一个选项卡内容。 不过,我想通过RSS新闻源添加内容到代码中的列表视图。 我正在考虑使用一个HTML注入string的webview但是我将如何从可绘制文件夹插入图像。 (这些图像只是本地存储的“新闻图标”,而不是来自互联网的图像) 对不起,如果这是一个nooby的问题,但任何帮助表示赞赏:)

ListViewasynchronous图像加载策略

我目前有一个ListView与自定义适配器获取信息asynchronous描述行的内容。 每行的一部分是一个图像的URL,我打算asynchronous下载,然后显示。 我目前的策略是下载这些图片的策略是: 保留下载的Bitmap对象的软引用caching。 当调用getView()并且位图在caching中时,直接设置ImageView的位图。 如果位图不在caching中,则开始将其加载到单独的线程中,下载完成后将其添加到caching中,并在适配器上调用notifyDataSetChanged()。 我也计划杀死拥有ListView的onDestroy()方法(或者甚至在onPause()方法)的Activity对象,但最重要的是我想杀死挂起的图像的下载熄灭屏幕。 我可能实际上只是在短暂的延迟之后取消下载,所以如果该行再次快速出现在屏幕上,则可以在不浪费带宽的情况下恢复下载。 然而,我不确定几件事情: 什么是最好的方式来检测当一排不在屏幕上,所以我可以取消下载? 调用notifyDataSetChanged()是下载完成后还是有更好的方法? 对整个战略的任何意见,将不胜感激。