Articles of listview

尝试使用runQueryOnBackgroundThread过滤ListView但没有任何反应 – 我错过了什么?

我有一个数据库中的国家列表。 我创建了一个选择国家/地区活动,其中包含一个用于过滤的编辑框和一个显示标记和国家/地区名称的列表。 当活动开始时,列表显示按字母顺序排序的整个国家/地区列表 – 工作正常。 当客户开始在搜索框中输入内容时,我希望根据他们的输入过滤列表。 我的数据库查询以前在AutoCompleteView中工作(我只想切换到单独的文本框和列表)所以我知道我的完整查询和我的约束查询正在工作。 我所做的是在EditText视图中添加TextWatcher,每次更改文本时,我都会调用列表的SimpleCursorAdapter runQueryOnBackgroundThread,并使用编辑框文本作为约束。 问题是列表永远不会更新。 我在调试器中设置了断点,TextWatcher确实调用了runQueryOnBackgroundThread,并使用预期的约束调用了我的FilterQueryProvider。 数据库查询正常,并返回光标。 游标适配器具有filter查询提供程序集(以及用于显示标志的视图绑定器): SimpleCursorAdapter adapter = new SimpleCursorAdapter (this, R.layout.country_list_row, countryCursor, from, to); adapter.setFilterQueryProvider (new CountryFilterProvider ()); adapter.setViewBinder (new FlagViewBinder ()); FitlerQueryProvider: private final class CountryFilterProvider implements FilterQueryProvider { @Override public Cursor runQuery (CharSequence constraint) { Cursor countryCursor = myDbHelper.getCountryList (constraint); startManagingCursor (countryCursor); return countryCursor; […]

在ListView中动态更改TextView字体颜色

我正在将XML文档绑定到自定义适配器。 列表中的所有项目最初都具有白色的字体颜色。 XML文档中的一个节点有一个我正在检查的属性,如果设置了属性,我想将ListView中该项的字体颜色更改为更暗的颜色。 我的代码似乎最初工作,但如果我上下滚动列表,ListView中应该保持白色的项目,自动更改为深色,由于某种原因: 这是我的布局代码: 这是我的自定义适配器: private class CustomAdapter extends BaseAdapter { private ArrayList mData = new ArrayList(); private LayoutInflater mInflater; public CustomAdapter() { mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void addItem(FilterItem item) { mData.add(item); } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int position) { return mData.get(position); } @Override public long […]

无法向ListView添加页脚

我有一个ListView,我正在尝试添加页脚。 出于某种原因,它不会出现。 我的页脚是在一个名为layout_footer的单独XML布局中定义的。 View v = getLayoutInflater().inflate(R.layout.layout_footer, getListView(), false); getListView().addFooterView(v); 这是我的ListActivity的onCreate方法中的代码。 请注意,这是我在onCreate上做的最后一件事。 我希望这个项目与列表的其余部分一起滚动,根据我发现的资源,我相信这就是你如何做到的。 不幸的是,页脚没有显示:( 非常感谢帮助

为什么我无法用布局重力锁定DrawerLayout

我使用DrawerLayout,最近我想改变drawerLayout中listView的重力。 但是我将listView的重力改为android:layout_gravity=”start|bottom”来自android:layout_gravity=”start” ,drawerLayout无法锁定到 mDrawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); setDrawerLockMode()使用; 但它没有锁定; ` 任何线索为什么我不能使用其他重力的锁模式? 谢谢!

如何在ListFragment中触发onListItemClick

在我的应用程序的平板电脑布局中,我有三个ListFragments和一个常规Fragment,我们称之为Make,Model,Size和Details。 最初填充Make列表,然后根据Make选择,填充Model列表; 选择模型时,将填充“大小”列表; 选择“尺寸”时,将显示“详细信息”。 每个事件(列表项选择)都通过onListItemClick处理程序处理。 在启动时,我想填充Make列表,选择列表中的第一个Make并让它通过onListItemClick处理程序来填充Model列表(依此类推,以便填充所有列表并显示详细信息 – 这也应该是在任何列表中进行任何选择时的行为 – 选择下一个列表中的第一个项目,直到我们显示详细信息)。 请注意,我可以控制数据库,对于每个Make,总会有至少一个Model,每个Make / Model至少有一个Size,每个Make / Model / Size只有一个Detail。 所以,我想选择列表中的第一个项目并让它触发onListItemClick处理程序。 我已经尝试了以下(使用适当的边界检查等),但它不起作用。 getListView().setItemChecked(0, true); 对“开箱即用”ListFragment的唯一更改是将CacheColorHint设置为这样 getListView().setCacheColorHint(R.color.GhostWhite); 其中GhostWhite在styles.xml中设置为 #88FFFFFF 有任何想法吗? 提前致谢。

无缝嵌套滚动(Android)

我们都被建议不要使用包含滚动机制的嵌套视图。 但是,在最新的Android版本(5.0)中,Phone应用程序引起了我对ScrollView内部似乎是ListView注意。 真正引起我兴趣的是滚动机制无缝地从ScrollView切换到ListView 。 请注意,在实际ListView开始滚动之前,选项卡上方的内容将被推出视图。 我自己试过复制这个,但结果不成功。 这是我采取的基本方法…… 通过单个连续触摸事件(不抬起手指)…… 当用户滚动时, ListView慢慢覆盖ImageView 。 一旦ImageView被100%覆盖并且ListView占用整个屏幕, ListView开始滚动。 我正在收听ListView上的触摸事件,如果已经到达顶部,请在ListView上调用requestDisallowInterceptTouchEvent ,即 @Override public boolean onTouch(View v, MotionEvent event) { if (listViewAtTop) { v.requestDisallowInterceptTouchEvent(true); } else { v.requestDisallowInterceptTouchEvent(false); } return false; } 只有当您抬起手指并继续滚动时,切换滚动上下文才有效。 是否有不同的方法可以达到预期的效果?

Android – FirebaseListAdapter的顺序是否相反?

我目前有一个FirebaseListAdapter,用最后5个项填充ListView: @Override public void onViewCreated(View view, Bundle savedInstanceState){ FirebaseListAdapter adapter = new FirebaseListAdapter(getParentFragment().getActivity(),HashMap.class,R.layout.list_item,firebase.limitToLast(5)) { @Override protected void populateView(View view, HashMap hashMap, int i) { String title = hashMap.get(“title”).toString(); String body = hashMap.get(“body”).toString(); TextView title_txt = (TextView)view.findViewById(R.id.title); TextView body_txt = (TextView)view.findViewById(R.id.body); title_txt.setText(title); body_txt.setText(body); } }; listView.setAdapter(adapter); } 我遇到的问题是,当一个新项目被推送到Firebase时,它会被添加到列表的底部。 我想要列表顶部的最新项目。 是否有可能实现这一目标? 非常感谢任何帮助,谢谢!

在android自定义列表视图中重复列出项目

在我的自定义列表视图中,项目正在重复。项目的位置对于所有项目是相同的。 代码如下 ListAdapter.java- public class ListAdapter extends BaseAdapter{ private List mName; private List mIcon; private Context mContext; public ListAdapter(Context mContext, List Name, List Icon) { this.mContext=mContext; this.mName=Name; this.mIcon=Icon; } @Override public int getCount() { // TODO Auto-generated method stub return mName.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; […]

如何使用Drawable图像名称从ArrayList 动态设置ImageViews源?

我有一个ListView,每行有一个ImageView,一个TextView和另一个ImageView。 下面的代码是我的ListView行的xml: 我有一个ArrayList ,其中包含我想要放在行的第一个ImageView中的Drawables的名称。 我想将ImageViews源“ic_default”更改为在ArrayList中具有名称的源。 在我的Activity中,在onCreate()中,我正在使用一个Adapter,如下面的代码所示: ArrayList items = new ArrayList(); items.add(“Star”); items.add(“Moon”); items.add(“Dog”); items.add(“Bird”); items.add(“Tree”); ArrayList itemsimg = new ArrayList(); itemsimg.add(“ic_star”); itemsimg.add(“ic_moon”); itemsimg.add(“ic_dog”); itemsimg.add(“ic_bird”); itemsimg.add(“ic_tree”); ArrayAdapter adapter = new ArrayAdapter(this, R.layout.scenesrow, R.id.text, items) { @Override public View getView(int position, View convertView, ViewGroup parent) { View row = super.getView(position, convertView, parent); ImageView left = (ImageView) […]

如何使用listview适配器中的单击按钮打开菜单上下文Android?

如何使用listview适配器中的单击按钮打开菜单上下文Android? 我尝试使用我的代码,但没有显示菜单上下文, 码 public View getView(int position, View convertView, ViewGroup parent) { vi=convertView; if(convertView==null) vi = inflater.inflate(R.layout.tulisan_komentar_list_item,parent, false); LinearLayout content_favorite= (LinearLayout)vi.findViewById(R.id.content_favorite); final TextView date_komentar = (TextView)vi.findViewById(R.id.date_komentar); // artist name final TextView isi_komentar = (TextView)vi.findViewById(R.id.isi_komentar); // duration final TextView nama_komentar = (TextView)vi.findViewById(R.id.nama_komentar); // duration final TextView id_tulisan_komentar = (TextView)vi.findViewById(R.id.id_tulisan_komentar); // duration final ImageButton act_komentar = (ImageButton)vi.findViewById(R.id.act_komentar); […]