Articles of listview

为什么适配器中的getCount被调用了这么多次?

我有一个自定义列表,只需几分钟即可显示。 当我试图检查问题的位置时,我看到即使我在列表中只有1个项目,方法getCount()被调用5次,getVIew()被调用一次,然后getCount()是被召唤更多时间。 整体getCount()被调用7次。 这有道理吗? 谢谢!

滚动列表视图时,Android ActionBar隐藏/显示

当用户向上/向下滚动列表视图时,我想隐藏/显示兼容性操作栏。 当操作栏消失时,列表也会占用操作栏的空间。 我遵循了一种方法,但它会产生一种丑陋的闪烁。 有没有人有这个问题的正确解决方案? 所需的行为类似于Google+应用中的隐藏/显示机制(我对页脚不感兴趣)。 我尝试过的内容如下: boolean tabletSize = getResources().getBoolean(R.bool.isTablet); if (!tabletSize) { final ActionBar actionBar = ((ActionBarActivity) getActivity()).getSupportActionBar(); lvNews.setOnScrollListener(new AbsListView.OnScrollListener() { private int mLastFirstVisibleItem; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (mLastFirstVisibleItem firstVisibleItem) { if (!actionBar.isShowing()) { actionBar.show(); } […]

android listviews:页眉和页脚视图

在我的ListActivity中,我需要页眉和页脚视图(在列表的顶部和底部)分别用作列表中的上一页和下一页按钮,因为我想一次只显示20个项目。 我通过以下方式设置我的标题和英尺视图: getListView().addHeaderView(myHeaderView); getListView().addFooterView(myFooterView); setListAdapter(adapter); 这工作正常,但我需要动态删除并添加这些页眉和页脚视图,因为我的列表中的某些页面可能没有下一页按钮或上一页按钮。 问题是,在调用setListAdapter之后,我无法调用addHeaderView或addFooterView。 有没有解决的办法?

如何在android listview中删除页脚的底部分隔符

就如此容易。 当然使用android:footerDividersEnabled =“false”不会对此工作,因为它会删除上部和下部分隔符。 我昨天提出了这个问题,不记得是谁试图回答它,但我不得不抹去它,因为巨魔开始降级问题因为它“不清楚”(如果你不知道什么是分隔符或页脚,或者底部,或什么是android,是的,它可以…) 无论如何,如果是这种情况让我们想象一个2项列表视图,我想给一个页脚空间,但没有页脚显示对应于底部分隔线的底线,但保持其他分隔线,也记住,只是如何删除,我可以使用2xviews并使用偶数作为建议的分隔符,但对我来说没有意义,只是添加额外的空视图+ 1px的页脚会更有效+ footerDividersEnabled就像我现在正在做的那样,但这只是一个简单的黑客攻击,它变得无法控制。 在页脚布局顶部添加一行也不起作用,因为当listView项目在背景中包含颜色或类似物时,您将有一个空格,因为您将看到分隔符所在的背景颜色。 有没有办法指定android不显示页脚的底部分隔符? 请尝试了解这不是同一个问题: 删除android ListView的底部分隔符 在没有阅读和降级的情况下进行巨魔之前。 @Kor让我们说这个页脚通常看起来像这样: 情况1: ListItemN 页脚 使用android:footerDividersEnabled =“false”看起来像这样: 案例2: ListItemN 页脚 我想要一种方法来像这样: 案例3: ListItemN 页脚 但只发现了上述的hacky方式。 我希望这有帮助,如果它不让我知道你还需要什么。

onClick侦听器到ListView图像 – Android

我有一个ListView ,右侧有一个图像。 我想通过单击ListView上的图像来执行onClick侦听器事件。 请参阅图片以供参考。 我知道基本的OnClick监听器实现,但这对我来说似乎有点棘手:P 忘了提一下,通过点击实际的ListView会拍摄一个新的活动,所以我需要保留两个模式。 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { eventsData.remove(id); cursor.requery(); } }); 上面的代码通过单击任何列表元素eventsData.remove(id);执行删除eventsData.remove(id); 是用于执行此任务的数据库助手。 就像我现在说的,我需要一个方法来执行相同的过程juts,点击图像,而不是整个列表元素,我希望list元素稍后再做一些其他操作。 我希望现在我清楚一点。 解决方案: 如果有人遇到同样的情况,那么这里是适配器的完整代码。 class CustomAdapter extends ArrayAdapter { CustomAdapter() { super(Activity.this, R.layout.row, R.id.label, items); } public View getView(final int position, View convertView, ViewGroup parent) { View row=super.getView(position, […]

使用Android应用程序的自定义适配器动态添加项目到列表视图

所以,现在我有一个自定义适配器类,它接收一个Locations数组并将它们添加到ListView。 这很好,花花公子,但我希望在初始化后将Locations添加到此listview。 例如,某人可以“添加位置”,并将其添加到此ListView。 这是我的主要活动: package com.example.listviewtest; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ListView; public class MainActivity extends Activity { private ListView listView1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Location location_data[] = new Location[] { new Location(R.drawable.ic_launcher, “Location 1”, “Fruit!”, “2 miles”, “8-4 mon-fri\nclosed sun”), new Location(R.drawable.ic_launcher, “Location 2”, “Veggies!”, “2 miles”, “8-5”), […]

Android:getView()在自定义适配器中调用两次

我正在将自定义SimpleCursorAdapter设置为ListView。 出于某种原因,对于DB中的每个项目,都会调用两次FriendAdapter的getView()。 经过一些调查(我的contact_list.xml中没有wrap_content),我仍然无法弄清楚原因。 可能是什么原因? 有人可以帮忙吗? 谢谢 ContactSelection.java public class ContactSelection extends ListActivity { private WhipemDBAdapter mDbHelper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDbHelper = new WhipemDBAdapter(this); mDbHelper.open(); setContentView(R.layout.contact_list); Cursor c = mDbHelper.fetchAllFriends(); startManagingCursor(c); String[] from = new String[] {}; int[] to = new int[] {}; setListAdapter(new FriendAdapter(this, R.layout.contact_row, c, from, to)); getListView().setItemsCanFocus(false); getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); } […]

listview没有用notifydatasetchanged()调用更新

这是我的代码 listview =(ListView) findViewById(R.id.lv1); ArrayList Monday = new ArrayList(); SClass s1=new SClass(); s1.sName=”samp”; s1.salary=1000; Monday.add(s1); temp=Monday; adapter = new CustomAdap(this, temp); listview.setAdapter(adapter); 上面的代码工作正常。但是当我将代码更改为此时 listview =(ListView) findViewById(R.id.lv1); adapter = new CustomAdap(this, temp); SClass s1=new SClass(); s1.sName=”samp”; s1.salary=1000; Monday.add(s1); temp=Monday; listview.setAdapter(adapter); adapter.notifyDataSetChanged(); Listview没有显示任何内容。问题是什么?

按下小部件ListView项时的Android启动活动

我正在使用ListView小部件,我希望用户能够在单击ListView时启动活动。 我还没有find任何关于此的教程,所以我想知道是否有人能指出我正确的方向或者可能分享一些代码。 我想要启动相同的活动,无论单击哪个ListItem,这都不是问题。 所有帮助表示赞赏!

如何在不扩展我的类中的ListActivity的情况下使用listview?

我有一个带有各种标签的应用程序(在tabhost上)。 每个选项卡都是一个扩展活动的活动,并且在其上有一些textfields和内容。 现在,我需要我的选项卡在listview中,但在Android开发人员指南的示例中,您必须扩展ListActivity而不是Activity。 基本上,我需要合并这两个教程: 列表显示 布局 如何在不延长listview情况下使用listview ? 我的XML文件: