Articles of listview

排序顺序不适用于listView和游标加载器

我有一个listView,它由游标加载器中的游标填充,并使用内容提供程序。 我想对listView进行排序,以便排列例如最新的项目添加到listView的顶部。 listView始终以相同的顺序出现,我无法更改此顺序。 我尝试使用排序顺序并更改它,无论它设置为什么,listView始终显示相同位置的项目。 使用这样的排序顺序, CursorLoader loader = new CursorLoader (List.this, Database.CONTENT_URI, projection, null, null, LocationsTable.TIME_STAMP + ” ASC”); 我试图除了TIME_STAMP之外的其他列排序,但结果总是相同的。 列表中项目的顺序永远不会改变。 甚至将ASC更改为DESC也没有效果。 如何设置使用cursorAdapter填充的listView中显示的项目的顺序或位置? listview类中的一些代码示例 来自onCreate方法 adapter = new ViewAdapter(this, null, 0); // sets array adapter to listview listViewOne.setAdapter(adapter); getLoaderManager().initLoader(LOADER_ID_ONE, null, this); LoaderCallbacks三种回调方法 @Override public Loader onCreateLoader(int id, Bundle args) { String projection[] = new String[]{LocationsTable._ID, […]

Android:ListView中的页脚

我有一个listview如下 我的页脚如下 当我使用时将页脚添加到列表视图 View header = getLayoutInflater().inflate(R.layout.header, null); View footer = getLayoutInflater().inflate(R.layout.footer, null); ListView lv = getListView(); // setting header for the list view lv.addHeaderView(header); lv.addFooterView(footer); setListAdapter(new ArrayAdapter(AudioListActivity.this, R.layout.row_audio, R.id.label, db_results)); 它位于最后一个listview项目的正下方。 我希望页脚位于底部。 我怎么能实现它? PS:标题完美地位于顶部。 感谢您提前的时间。

Android中使用ArrayAdapter和ListView的大型数据集

出于学习目的,我想编写一个Android应用程序,它将显示从0到Integer.MAX_VALUE的数字列表。 我目前有一个应用程序将显示0到100之间的数字,这很简单,因为你可以创建一个数字数组,然后将其传递给适配器,目前使用ArrayAdapter。 如果我尝试使用一个非常大的数组,程序在使用所有可用内存时会崩溃。 看一下更高级的应用程序,我注意到人们使用数据库和CursorAdapters来处理大型数据集。 如果这是正确的事情,我可以开始阅读。 我想做什么(虽然随意告诉我这是错的)是种子我的ArrayAdapter有一个长度为100的数组,或者一些相对较小的长度。 当用户向上或向下滚动时,我希望修改数组(或适配器)中的值,以便在用户向下滚动时增加,删除列表中的最小项并将更大的值附加到列表的末尾。 如果用户向上滚动,我想从列表末尾删除项目并在开头添加新的较小值。 正如我在这个项目中所说,到目前为止我做得很少。 package example.VariableListView; import java.util.ArrayList; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; public class variablelistview extends ListActivity { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); ArrayList intItems = new ArrayList(); for (int ii = 0; ii < 100; ii++) { intItems.add(ii); } this.setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, intItems)); } } […]

在Android列表视图中滑动时显示删除按钮

扩展到另一个Stackoverflow问题,我已经实现了一些手势检测代码,以便我可以检测我的listview中的行(在FrameLayout中)是否被刷过。 我跟着Damian的问题/答案,关于如何从适配器获取单独的行/视图。 如何在listview中获取行的位置(在屏幕上) 我在onFling中有代码获取行的视图,并尝试在我的xml布局中设置为不可见的删除按钮可见。 但是,这不会发生。 我想知道如何在刷卡的列表视图中显示按钮? class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { try { if (e2.getX() – e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { int itemId = MyClass.this.lv.pointToPosition( (int) e1.getX(), (int) e1.getY()); Log.v(“item id”, String.valueOf(itemId)); View v = MyClass.this.adapter .getViewOnScreen(itemId); Button delete = […]

在列表视图的底部添加进度条

我正在创建一个带有无限滚动效果的简单列表视图。 当我下载新数据时,我想在listview底部显示一个不确定的进度条(如gmail app)。 有两种解决方案 将进度条添加为listview的项目,但我不喜欢这个解决方案 在列表视图的底部添加进度条并显示/隐藏它 它会给出类似的东西 但是当我的列表长度超过我的屏幕大小时(换句话说,当我必须scoll)时,不会显示进度条。

带Checkbox的Android ListView:自动取消选中

我有一个带有自定义BaseAdapter的ListView。 列表项包含需要表示数据库中的属性的CheckBox。 我使用CheckBox.setOnCheckedChangeListener和一个新的OnCheckedChangeListener来检测更改,因此我可以根据CheckBox的当前状态更改数据库。 到目前为止非常简单的东西。 但是,当在列表中向下滚动时,先前检查的CheckBoxes将被取消选中。 我怀疑只要视图被回收就会发生这种情况(我正在使用convertView / ViewHolder技术)。 我怎么能阻止这个? 出了什么问题? 提前致谢。 编辑:为了使事情更清楚,问题是回收视图以某种方式使用isChecked == false调用OnCheckedChangeListener#onCheckedChanged(buttonView,isChecked)。

当项目数量发生变化时,如何更新与listview绑定的CursorAdapter?

我有一个基于CursorAdapter的自定义适配器支持的ListView。 我给它的游标是基于数据库中的Notes列表(每个注释是一个DB行)。 一切正常,直到我从数据库中删除一个注释。 我不确定如何正确更新光标/适配器/列表视图以显示新数据。 我已经阅读了使用adapter.notifyDataSetChanged() vs cursor.requery()来刷新UI的相互矛盾的post,但在这种情况下它们似乎都不起作用。 我能够刷新它的唯一方法是从新查询创建一个新游标并调用adapter.changeCursor(newCursor) 。 有人可以演示更新支持数据和UI(如果可能的话,使用伪代码)的正确方法。

Android:ScrollView不滚动

我正在尝试创建一个带有标题的布局,在它下面有一个横幅,然后在横幅下面创建一些ListView。 我希望整个屏幕可以滚动,除了标题。 现在我知道ListView不会在ScrollView中滚动,所以我已经将ListView的高度设置得足够大以显示所有项目。 问题是,即使经过这些更改,我也看到ListView独立滚动,整个屏幕不可滚动。 ` `

“您的内容必须有一个ListView,其id属性为’android.R.id.list’”从ListActivity更改为视图时

我想编写一个应用程序,其中包括:使用sdcard中的图片文件填充列表视图,b:从列表中选择选项时显示图像。 但是,它与上述例外有关。 我看不出为什么……? 请帮忙! 主要活动: public class ProjektJimmuActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); navigateTo(“/sdcard/”); } public void navigateTo(String dir){ setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,getListOfFiles(dir))); getListView().setTextFilterEnabled(true); } public String[] getListOfFiles(String dir){ File file = new File(dir); String[] files = file.list(new Filter()); return files; } @Override protected void onListItemClick(ListView l, View v, int position, […]

如何在android中跳转到列表视图的项目?

我有一个应用程序,我有一个edittext。 而且我有一个列表视图,其中包含100个项目,一次只能显示5个项目。 我在Edittext中输入一个数字(n),我希望listview跳转到列表视图的第n个项目,第n个项目应该位于可查看区域的顶部(显示5个listview项目的区域)。 你能告诉我这是如何实现的吗?