Articles of listview

如何用动态数据实时更新Android ListView?

我有一个后台线程加载数据,我想在Android ListView中显示。 数据经常变化(即每秒1-2次)。 有时,数据集中的行数也会发生变化(但肯定不会像单元格中的数据那样频繁变化)。 据我所知,有两种方法可以更新单元格中的数据: 让后台线程通知UI线程新数据准备就绪,然后UI线程可以调用BaseAdapter.notifyDataSetChanged()。 但是,我在不止一个地方读过,如果经常调用该方法,它会很慢,因为ListView必须重新构建其所有子视图Views。 如果数据集计数未更改,我可能会find与更改的数据关联的所有可见ListView单元格,并手动更新值而不调用notifyDataSetChanged()。 这可能会有效,但我认为不幸的是,当我通知List List适配器应该为我处理更新通知和机制时,我必须手动更新视图。 如果数据集计数随时间变化(即不仅ListView的每个单元格内的数据发生变化,而且ListView中的单元格总数可以根据提供实时数据的后台线程增长或缩小,此方法也不起作用)。 我当然会感谢其他已实现此方案的人的想法,以及他们如何优化代码简单性,最重要的是性能。

ListViewanimation单个项目

我有一个带有项目的ListView。 当用户点击某个项目时,它的高度应该缩放为零,并且下面的所有项目都应向上滚动。 我下面的代码不起作用。 使用我的代码,点击的项目向右缩放,但下面的项目不向上滚动,它们保持在相同的位置。 我也尝试过使用LinearLayout,但是存在同样的问题。 有一个应用程序可以做到这一点。 它叫做任务 。 我目前的实现如下: @Override public void onItemClick(AdapterView arg0, View v, final int index, long id) { Animation anim = AnimationUtils.loadAnimation(getActivity(), R.anim.scaleup); v.startAnimation(anim); }

ListView内部的水平RecyclerView不能滚动得非常流畅

我有一个ListView ,其中每个项目都是Horizo​​ntal RecyclerView 。 我面临的问题是,水平滚动不是很平滑。 如果我在一个完全水平的方向上滚动/滑动,那么它工作正常但如果滚动甚至略微非水平(比如与水平成10度角),它认为上/下滚动而不是左/右,由于父ListView 。 我试过这个方法: recyclerView.setOnTouchListener(new FlingRecyclerView.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: // Disallow ScrollView to intercept touch events. v.getParent().requestDisallowInterceptTouchEvent(true); Log.i(“Scroll down”, “Intercept true”); break; case MotionEvent.ACTION_UP: // Allow ScrollView to intercept touch events. v.getParent().requestDisallowInterceptTouchEvent(false); break; case MotionEvent.ACTION_MOVE: // […]

如何知道何时完成Android ListView的填充

我有一个包含ListView的子Activity。 此活动是从SQLite游标异步填充的。 列表项包含TextView,RadioButton和普通Button。 XML如下所示: 我必须做一些逻辑来确定默认选择哪个RadioButton,并且在ListView已经加载之前我不能这样做。 问题是,到目前为止我尝试过的所有事件(onCreate,onPostCreate,onResume,onWindowFocusChanged),ListView子计数为零。 我也尝试在ArrayAdapter类中使用getView方法,但该方法被称为多个时间,并且ListView子计数每次都可能不同,从而导致意外结果。 显然,这些事件在ListView完成填充其子项之前触发。 是否有我可以侦听的事件,或者其他一些方法来确定ListView何时完成填充并且可以通过编程方式修改其所有子代? 谢谢!

如何在android中创建Vertical Carousel?

我想在android中实现垂直旋转木马。我已经搜索了很多关于它的东西,最后我在这里find了横向旋转木马的例子。 任何人都可以知道如何将这个水平旋转木马转换成垂直旋转木马。 我也试过这个。 链接 。这个3d列表视图给出了每个元素的旋转,但我想实现整个列表应该在3d中。 任何机构都可以提出建议吗……

在ViewHolder模式中将ViewHolder设置为静态对性能至关重要吗?

在ViewHolder模式中将ViewHolder设置为静态对性能至关重要吗? ViewHolder对象将每个组件视图存储在Layout的标记字段中,因此您可以立即访问它们而无需重复查找它们。 首先,您需要创建一个类来保存您的确切视图集。 例如: static class ViewHolder { TextView text; TextView timestamp; ImageView icon; ProgressBar progress; int position; }

Android ListView Adapter如何检测空列表?

我的Activity中有一个ListView,它从SimpleAdapter的扩展类中获取值。 当我在其中添加或删除一些数据时,这个正常工作。 但我的问题是,当我的项目列表为空时,我想用“No item inhere”之类的消息替换listView或类似的东西。 我尝试这样做,这样: class FavAdapter extends SimpleAdapter{ Activity context; ArrayList<HashMap> data; String[] items; int[] champs; int layout; FavAdapter(Activity _context, ArrayList<HashMap> _data, int _layout, String[] _items, int[] _champs){ super(_context, _data, _layout, _items, _champs ); this.data = _data; this.context = _context; this.items = _items; this.layout = _layout; this.champs = _champs; } public View getView(int […]

如何在onItemclicklistener上创建listview

我想创建listview。 我从JSON获得了价值。 在这里,我从json到listview得到了值,但是我无法获得onItemclickListener方法。 为什么会发生这种情况我不知道,请帮助我编码如下所示。 Logcat没有显示任何内容。 谢谢。 Activity.java public class Activites_Activity extends CheerfoolznativeActivity { private ListView contests_listView; private ProgressBar pgb; ActivitiesBean bean; ArrayList listActivities; ListAdapter adapter; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview); setHeader(“Activites”); contests_listView = (ListView) findViewById(R.id.contests_listView); pgb = (ProgressBar) findViewById(R.id.contests_progressBar); listActivities = new ArrayList(); new FetchActivitesTask().execute(); } public class FetchActivitesTask extends AsyncTask { int […]

Android:从自定义列表视图中单击的按钮获取列表视图项

我有一个带有两个按钮的自定义ListView,当我单击任何行上的任一行时,我想在Listview上获取文本标签,现在只需popup一个Toast。 到目前为止没有任何工作我继续得到我的数组中的最后一项。 这是一个屏幕截图,让您更好地了解我的意思 这是我的自定义ListView的Adapter子类 static final String[] Names = new String[] { “John”, “Mike”, “Maria”, “Miguel”}; class MyArrayAdapter extends ArrayAdapter { private final Context context; int which; public MyArrayAdapter(Context context, String[] pValues) { super(context, R.layout.main, pValues); this.context = context; values = pValues; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater […]

onItemLongClick参数中RowId和Position之间的差异

我对onItemLongClick(…)的第3和第4个参数感到困惑。 根据AdapterView.OnItemLongClickListener position – 列表中视图的位置 id – 单击的项的行ID 我不能从这些中得到任何意义,请给我建议。