Articles of baseadapter

如何在ListView Adapter类中实现2种不同types的分隔符(即标题)

我通过这组代码调用适配器 mAdapter = new MyCustomAdapter(getActivity()); mAdapter.addSeparatorItem(new ContentWrapper(q.get(0).getA_name(),null)); mAdapter.addItem(new ContentWrapper(q.get(0).getAS_name(), q.get(0).getDesc_art())); 考虑以下代码: private class MyCustomAdapter extends BaseAdapter { private static final int TYPE_ITEM = 0; private static final int TYPE_SEPARATOR = 1; private static final int TYPE_MAX_COUNT = TYPE_SEPARATOR + 1; private ArrayList mData = new ArrayList(); private LayoutInflater mInflater; private TreeSet mSeparatorsSet = new TreeSet(); […]

使用哪个适配器 – BaseAdapter或ArrayAdapter?

我有一个JSON字符串,其中包含以下多个实例 名称 信息 时间戳 个人资料照片url 我想创建一个ListView,其中每个列表都具有上述内容。 对于这种特殊情况,我需要扩展哪个更好的适配器来创建自定义适配器?

二进制XML文件行#17:由UnsupportedOperationException引起的类错误:无法转换为维度:type = 0x2

我一直试图运行我的应用程序(android)但它崩溃时,以下exception [logcat的] FATAL EXCEPTION: main android.view.InflateException: Binary XML file line #17: Error inflating class at android.view.LayoutInflater.createView(LayoutInflater.java:513) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) at android.view.LayoutInflater.inflate(LayoutInflater.java:407) at android.view.LayoutInflater.inflate(LayoutInflater.java:320) at android.view.LayoutInflater.inflate(LayoutInflater.java:276) at emy.dt4it.healthytips.NavDrawerListAdapter.getView(NavDrawerListAdapter.java:46) at android.widget.AbsListView.obtainView(AbsListView.java:1315) at android.widget.ListView.measureHeightOfChildren(ListView.java:1198) at android.widget.ListView.onMeasure(ListView.java:1109) at android.view.View.measure(View.java:8171) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:578) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:362) at android.view.View.measure(View.java:8171) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) at com.slidinglayer.SlidingLayer.onMeasure(SlidingLayer.java:1077) at android.view.View.measure(View.java:8171) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:578) at […]

如何从适配器知道ListView的项目是否可见?

我有一个连接到ListView的适配器,例如 mJournalAdapter = new JournalAdapter(); journalEntryList.setAdapter(mJournalAdapter); 我想知道我的JournalAdapter内部是否有一些视图(ListView项目)可见,是否可能?

如何在Android中获取BaseAdapter的上下文

我有一个名为BinderData的类,它扩展了BaseAdapter 。 我想获得基类上下文。 我尝试使用getContext()但是在BaseAdapter情况下BaseAdapter 。 我怎样才能获得这堂课的背景?

从睡眠模式恢复时保持GridView

我遇到了一个相当大的GridView的问题。(大约70个孩子)如果我在onCreate上启动它或者在按下主页按钮然后返回后恢复后,GridView工作正常。 但是当我从睡眠模式恢复后恢复时,我的BaseAdapter再次启动并破坏了我在运行时对其所做的更改。 如果我在重启后调用它,这也会使getChildAt()给出NullPointerException。 我怎样才能让它只是按常规onPause(主页按钮)对GridView进行操作,并避免每次从睡眠模式恢复时GridView都被清除? 编辑:我已经尝试为我的Activity类设置一个唤醒锁,它调用BaseAdpter没有运气 2.Edit:自从我发布这个问题以来,我一直试图在onPause中使用此代码恢复GridView: SparseArray array = new SparseArray(); gridView.saveHierarchyState(array); bundle = new Bundle(); bundle.putSparseParcelableArray(“state”, array); 这在onResume: try{ gridView.restoreHierarchyState(bundle.getSparseParcelableArray(“state”)); } catch(Exception e){ //Most likely first start Log.i(“SomeTag”, “No GridView state found”); } } 奇怪的是我在屏幕上似乎从一个地方跳到另一个地方的一切,当我尝试getChildAt()时它仍然崩溃。 在睡眠模式之后它也无法获得它。 编辑这是来自BaseAdapter getView的代码(注意!这些代码中的一些是无关紧要的) public View getView(int position,View convertView,ViewGroup parent){ mParentView = parent; DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); int width = […]

我怎样才能使用baseadapter过滤listview

我试图过滤listview,但getfilter方法不起作用, 这是代码: @Override public void afterTextChanged(Editable s) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mHistoryAdapter.getFilter().filter(s); } 我也在baseadapter中添加了方法 public Filter getFilter() { return null; } 但它不起作用..可以有人帮助我.. @谢谢

使用GUID或字符串作为ID的hasStableIds适配器

我正在实现一个自定义的ArrayAdapter ,我想将hasStableIds设置为true。 但是我的T项的ID是字符串 , getItemId方法返回long 。 所以,我目前正在做的是: @Override public boolean hasStableIds() { return true; } @Override public long getItemId(int position) { return this.getItem(position).getId().hashCode(); } 其中getId()返回一个String。 这是使用String ID的正确解决方案吗? 特别是,对于这种情况,String Ids是GUID,有更好的选择吗?

如何在ListView中处理多个倒计时器?

我有一个listview(带有自定义列表适配器),我需要在每一行显示一个倒计时。 例如,如果我的列表包含4个项目,我将有4行。 此时,我需要处理4个不同的倒计时(每行一个),因为时间不同。 到目前为止,我正在通过以下方式处理它:在自定义列表适配器中,在getView()方法内部,我创建一个新的CountDownTimer并在TextView中显示剩余时间。 但问题是它会使活动减慢很多,我甚至无法在最坏的情况下正确滚动(因为每次显示一行时,它都会创建一个新的CountDownTimer)。 我搜索了很多更好的解决方案,但没有人满意。 是否有更清洁,更流畅的解决方案来处理listView中的多个倒计时器? 谢谢

检测BaseAdapter.notifyDataSetChanged()何时完成

我想知道什么时候BaseAdapter.notifyDataSetChanged()完成然后做声音。 我的代码: BaseAdapter.notifyDataSetChanged(); mScroller.startScroll(oldX, 0, dx, 0); mScroller在notifyDataSetChanged()完成之前滚动。 我希望在notifyDataSetChanged()完成后notifyDataSetChanged()滚动到oldX 。 请帮帮我,谢谢。