Articles of listview

Android:onScrollStateChanged SCROLL_STATE_IDLE有时不会触发

我遇到了一些问题。 我在做什么:我有一个ListView,里面有一些图像。 为了使滚动更顺畅,我已禁用滚动时显示的图像。 现在Android中似乎存在一个错误 ,有时会导致滚动状态不会从SCROLL_STATE_FLING更改回SCROLL_STATE_IDLE,这会导致我的图像不再显示。 我的第一个想法是设置一个onTouchListener并检查我何时获得ACTION_UP,但这没有用,因为之后显然设置了SCROLL_STATE_FLING状态。 所以现在我认为我可以在设置SCROLL_STATE_FLING状态时启动计时器,并在一段时间后检查状态是否仍处于fling模式然后使我的视图无效。 但我认为这不是一个很好的解决方案。 有没有人对如何做到这一点有更好的想法? 我已经看到了这个回复,但是我需要一个API级别<9的解决方案(加上它有时也会发生,当它没有过度滚动时) 这是我的代码: mList.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { mListAdapter.setIsScrolling(scrollState != SCROLL_STATE_IDLE); Log.i(this, “scrollStateChanged” + scrollState); if (scrollState == SCROLL_STATE_IDLE) { mList.invalidateViews(); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } }); 谢谢,玛丽亚

在Android中构建树视图控件的建议

在Android中构建树视图控件的建议

Android:EfficientAdapter有两个不同的视图

我正在使用基于SDK演示示例中的EfficientAdapter示例的扩展版BaseAdapter。 我的数据基本上是一个对象( ListPlaces ),它包含一个ArrayList ,其中包含实际的地点列表,可通过listPlaces.getValues()访问。 此ArrayList数据按范围排序, ArrayList由一些特殊项(分隔符)组成,没有数据,但separator标志设置为true 。 现在每当我的EfficientAdapter获取一个数据对象,它是一个分隔符,它返回false为public boolean isEnabled(int position)和public View getView(int position, View convertView, ViewGroup parent)根据当前数据对象是否包含两个不同的布局而膨胀真实数据或只是一个分隔符。 如果我每次都给布局充气,这个效果很好。 但是,每次膨胀布局并调用findViewById会使ListView几乎变得非常慢。 所以我尝试使用EfficientAdapter和ViewHolder方法。 但由于我尝试访问的两种不同视图,这开箱即用。 因此,每当我的convertView != null (else-case)通过我们的ViewHolder访问布局上的项目时,当前一个View是一个分隔符时,它当然不能访问那里只有“真实”的TextView “项目布局。 所以我也强制我的getView()不仅在convertView == null时膨胀布局,而且在前一个listRow与当前listRow不同时: if (convertView == null || (listRow != listRow_previous)) { [….] } 这似乎现在几乎可以工作。 或者至少它从一开始就没有崩溃。 但它仍然崩溃,我不知道我要做的不同。 我试图查看convertView.getID()和convertView.getResources() ,但到目前为止这并没有什么帮助。 也许其他人知道如何检查我当前的convertView是否与列表项布局或列表分隔符布局匹配。 谢谢。 这是代码。 哪里有一个[…]我拿出了一些不那么重要的代码,以便于阅读和理解: private class EfficientAdapter extends […]

Android ListView向左和向左滑动以接受和拒绝

我想开发我想要的列表视图,当我从左向右滑动时,在左角显示一个接受(真实)图标(不可点击 – 显示从左向右滑动时的颜色变化),如下面的屏幕截图, 当我从左向右滑动它接受(在我称为接受api),当我从右向左滑动它将显示如下, 这是在iPhone中完成的,但我不知道如何在Android中做到这一点,我这么多谷歌搜索,但没有find我想要的, 我尝试以下示例: http : //www.tutecentral.com/android-swipe-listview/ 但是当我向左和向右滑动时,同样的onOpened(..)方法被调用,因此令人困惑:何时调用accept并拒绝api,因为在任何types的滑动时调用相同的方法。 而且我也想要当我只是向左或向右滑动那个时间接受图像(左侧)和拒绝(拒绝图像右侧)显示时,当我拿起手指时它必须显示整个列表视图(不是两个侧面图像) )。 所以任何人请帮助我如何做到这一点。 我的问题是一些混乱,也有一些低语法,但我不知道如何解释整个animation,所以我尝试写如上, 如果有人帮助我,我非常感激。

SimpleCursorAdapter与ImageView和TextView

你可以在带有listview的SimpleCursorAdapter为一行设置一个带有imageview和textview的布局吗? 这将是布局 可以使用listview在SimpleCursorAdapter中完成吗? 当我在listview中需要图像时,我总是使用自定义arrayadapter但从不使用光标。 如果可以完成,我该如何设置图像?

什么是android.R.layout.simple_list_item_1?

在我看到的所有示例中,他们在创建ArrayAdapter时只使用“android.R.layout.simple_list_item_1”。 什么是android.R.layout.simple_list_item_1,它只是名为simple_list_item_1.xml的布局文件的名称,还是数组适配器所需的TextView的id? 如何查看文件的内容或使用我的res文件夹中的文件? public class MyClass extends ListActivity { private String[] titles = {“Test”}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mylayout); setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, titles)); updateList(); } }

Listview,打开onClick的新活动

嘿大家我已经找了好几个小时试图find解决方案,我的目标是在打开另一个活动时有一个Listview。 实际上,我得到它可以在点击时打开另一个活动,但我如何得到它,以便每个列表项将打开自己的活动? 我非常抱歉,如果这个问题已经得到解答,但我find的链接并没有真正描述代码正在做什么[是的我是新手:) 这是我正在使用的代码 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String[] countries = getResources().getStringArray(R.array.countries_array); setListAdapter(new ArrayAdapter(this, R.layout.newfile, countries)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { // When clicked, show a toast with the TextView text Intent myIntent = new Intent(view.getContext(), Html_file.class); startActivityForResult(myIntent, […]

如何知道listview何时完成在android上加载数据

我目前有一个列表视图,显示必须完成的事情的信息。 当用户单击列表视图上的项目时,应用程序将检查已单击的项目并将其设置为已完成。 如果项目已设置为已完成,则会显示带有检查的图像视图; 此imageview是listview项目的一部分。 一切都运作良好。 如果我滚动,退出活动并再次打开它,取消选中该项,一切正常,并显示或隐藏相应列表视图项的图像视图。 但我的问题是: 我有2个按钮来按字母顺序和日期顺序对列表视图项进行排序。 当我点击它们时,它们工作得很好。 但是,应用程序不会显示已检查项目的图像视图。 我知道这是因为为了使检查出现,我需要将listview完全加载。 我的意思是,在活动中显示所有信息。 我的问题是: 我怎么知道列表视图何时填充或加载,以便我可以调用确保哪些项目已经检查以显示图像视图的方法? 我使用了isfocused(),onfocuschanged(),onWindowChangeState()以及所有这些types的方法,但它们都不能用于触发我的方法。 是否有任何方法可以知道列表视图何时填充以使检查显示在已显示的项目上,而无需任何用户交互? 感谢您的时间和帮助。 PD:我已经拥有用户滚动列表的部分,该部分已经完成。 我正在使用SimpleCursorAdapter来填充listview。 这是我填充列表视图的地方: public void mostrarLista(){ Cursor c = admin.obtenerCursorGastosFijos(ordenadoPor); // The desired columns to be bound String[] columnas = new String[] {“_id”, “Descripcion”, “Costo_Estimado”, “Fecha_Pago”}; // the XML defined views which the data will be bound to […]

使用ListView的Android小部件不会加载项目correclty

我正在尝试使用ListView为我的应用程序实现一个小部件。 为此,我逐步完成了以下所有链接: 带有列表视图的Android应用小部件 将App小部件与集合一起使用 – developer.android.com/guide/topics/appwidgets/index.html#collections 在Android中的主屏幕小部件中填写ListView – stackoverflow.com/questions/14121602/filling-listview-in-homescreen-widget-in-android 但是,当我将小部件放在主屏幕上时,列表项的数量确实与我在数据库中的项目数相匹配,但每行的视图不会更新并继续显示“正在加载…”(如图所示)这个屏幕截图 ) 我不明白缺少什么。 非常感谢您的帮助! 这是我的AppWidgetProvider: package com.appro.illbeback; import com.appro.illbeback.R; import com.appro.illbeback.data.CallsDataSrouce; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.widget.RemoteViews; public class CallsAppWidgetProvider extends AppWidgetProvider { private CallsDataSrouce dataSource; @SuppressWarnings(“deprecation”) @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) { dataSource = […]

如何为listview中的每一行设置不同的背景颜色?

我想在listview的每一行中设置不同的背景颜色? 我使用自定义适配器列表视图 。 它应该出现在活动loads.static不同颜色的行时。