Articles of 适配器

当我使用自定义适配器向上和向下滚动listview时,getView()开始表现得很奇怪。 为什么?

我有一个listview与自定义arrayadapter处理大约15个字符串。 每行的样式交替显示(标签和这些标签的值之间 – 例如,第1行可以是“电子邮件地址”,第2行是实际的电子邮件地址)。 我在arrayadapter的getView()方法中将每行的样式更改为替换。 因此,如果当前位置的项目是标签,我将从默认的行样式(这是值应用于它们的样式)更改样式。 当列表视图首次加载时,样式是完美的,正如我想要的那样。 如果我慢慢向上或向下滚动列表,它会保持这种状态。 但是,如果我快速上下滚动列表,值行的样式将开始更改为标签行的样式,直到所有行都具有标签行的样式。 有谁知道为什么会发生这种情况? 我在应用程序中的其他列表视图上使用了自定义适配器,没有这样的问题。 编辑:发现它还将所有行更改为纵向 – >横向更改的标签样式。 不在横向 – >纵向更改上执行此操作。 下面是我正在使用的适配器。 我错过了什么吗? public class DetailsAdapter extends ArrayAdapter { private TextView text = null; private String item = null; public DetailsAdapter(Context context, int resource, int textViewResourceId, String[] objects) { super(context, resource, textViewResourceId, objects); } @Override public View getView(int position, […]

Android:当我传递Null时,构造函数是不明确的,但是当我传递一个赋值为Null的variables时没有

我编写了以下语句来创建一个ArrayAdapter , ArrayAdapter arrayListAdapter = new ArrayAdapter(getActivity(), R.layout.fragment_result_titles, R.layout.row_listview, arrayList); 但是我得到了构造函数调用不明确的错误。 我理解当传递null时,不清楚ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)和ArrayAdapter(Context context, int resource, int textViewResourceId, List objects)中的哪一个是我们呼叫。 但后来我尝试了这个: ArrayList arrayList = null; ArrayAdapter arrayListAdapter = new ArrayAdapter(getActivity(), R.layout.fragment_result_titles, R.layout.row_listview, arrayList); 这不会给出错误,虽然我仍然传递null ,不是吗? 为什么会这样?

ListView与水平ScrollView

我正在尝试创建一个列表视图,其中包含一个水平滚动视图作为每一行。 我希望元素垂直排列,如果有超过一定数量的项目,视图将变为可滚动。 然而它看起来像这样。 我正在膨胀以下的xml single_row.xml 这是我的适配器,用于将视图添加到视图中 Adapter.java import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import com.example.jj.library.Chip; import com.example.jj.library.ChipView; import com.example.jj.library.ChipViewAdapter; import com.example.jj.library.OnChipClickListener; import java.util.ArrayList; import java.util.List; /** * Created by jj on 12/21/2015. */ public class LiveFeedAdapter extends ArrayAdapter implements OnChipClickListener { private static final String TAG = “LIVEFEED ADAPTER”; […]

具有不同项目布局的ListView的ViewHolders

我有4种不同types布局的ListView:一种是图像,另一种是没有图像。 我尝试做这样的事情。 我重写了BaseAdapter的getView: public View getView(int position, View convertView, ViewGroup parent) { Map item = mData.get(position); if(item.get(“image_location”).equals(“”) == true){ ViewHolderWithoutImage holder = new ViewHolderWithoutImage(); if(convertView == null){ convertView = mInflater.inflate(R.layout.row_without_image, null); holder.title = (TextView)convertView.findViewById(R.id.title); holder.firstParagraph = (TextView)convertView.findViewById(R.id.first_paragraph); convertView.setTag(holder); }else{ holder = (ViewHolderWithoutImage)convertView.getTag(); } holder.title.setText(mData.get(position).get(“title”).toString()); holder.firstParagraph.setText(item.get(“first_paragraph”).toString()); }else{ ViewHolderWithImage holder = new ViewHolderWithImage(); Bitmap bm = null; […]

用于android的ListViewfilter

我有一个适配器,我使用ad.getFilter().filter(s); 用于过滤listView。 如果我在EditText中写一个单词,它的效果很好。 如果在单词后写一个空格字符,它不起作用(结果没有行)。 我想用名称和surmane做一个filter。 我想在edittext中插入”Mario Rossi”并得到一个结果..我希望我解释一下。 非常感谢。 private TextWatcher filterTextWatcher = new TextWatcher() { public void afterTextChanged(Editable s) { } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { ad.getFilter().filter(s); } };

从底部添加animationRecyclerView添加

我正在使用最新的RecyclerView库来显示一个列表,其中包含一个选项,可以将项目添加到此列表中。 该列表的顺序相反,因此最新添加的内容显示在底部。 从顶部向回收站视图添加新项目时,会显示一个漂亮的animation,并自动滚动列表以显示最新项目。 但是,从底部添加新项目时,在animation新项目时,项目不会被类似地向上推。 这会导致奇怪的行为,即添加新项目并且除非用户滚动到列表底部,否则无法看到animation。 作为临时修复,我强制循环器视图适配器在添加新项目后滚动到第一个位置。 这不像从回收站视图顶部添加那样无缝,是否有适当的方法来实现它? 相应的代码如下: la.addItem(0, msg); layoutManager.scrollToPosition(0);

Viewpager:如果页面被删除,则下一页内容将获取已删除的页面内容

(如果有人需要更多信息,或者更好的描述让我知道) 你好,我在这里包含了viewPagerLibrary: http ://viewpagerindicator.com/#introduction今天在我的项目中。 不,我得到一个非常奇怪的问题:如果我添加一个网站或页面(让我们在接下来的几行中调用它)并再次删除它一切都可以。 但是,如果我尝试添加不同的页面(那些页面是实现BaseFragment类的不同Fragements),则会显示第一页的内容。 如果我添加几个页面并在这些页面之间删除一个页面,则会发生同样的事情。 删除页面之后的页面现在显示已删除的页面内容。 这个bug的一个例子:现在的问题是。 如果我在FragmentB之后添加FragmentA,那么我删除FragmentA,FragmentB获取FragmentA的视图/内容。 奇怪的是,对象是正确的(因此适配器返回正确的对象),标题也是正确的。 在我的主要内容中,我以这种方式创建我的寻呼机,指示器和适配器: Cfg.mAdapter = new FragmentAdapter(getSupportFragmentManager()); Cfg.mPager = (ViewPager)findViewById(R.id.pager); Cfg.mPager.setAdapter(Cfg.mAdapter); Cfg.mIndicator = (TabPageIndicator)findViewById(R.id.indicator); Cfg.mIndicator.setViewPager(Cfg.mPager); //We set this on the indicator, NOT the pager Cfg.mIndicator.setOnPageChangeListener(TabHelper.onPageChangeListener); (Cfg是一个静态文件,用于存储这些东西以供使用) 我的BaseFragment如下所示: public class BaseFragment extends Fragment{ public static int FILE_FRAGMENT = 0; public static int FTP_FRAGMENT = 1; public static […]

使用StickyListHeaders的SwipeActionAdapter

我正在尝试将这两个非常棒的Android库结合起来: https://github.com/emilsjolander/StickyListHeaders https://github.com/wdullaer/SwipeActionAdapter 我曾与SwipeActionAdapter的所有者合作过,他说这是可能的( https://github.com/wdullaer/SwipeActionAdapter/issues/29 ),但我仍然收到错误: 08-02 11:33:07.364 1655-1655/com.slaptap.tappedin E/InputEventReceiver﹕ Exception dispatching input event. 08-02 11:33:07.364 1655-1655/com.slaptap.tappedin E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback 08-02 11:33:07.380 1655-1655/com.slaptap.tappedin E/MessageQueue-JNI﹕ java.lang.NullPointerException at com.wdullaer.swipeactionadapter.SwipeActionTouchListener.onTouch(SwipeActionTouchListener.java:419) at android.view.View.dispatchTouchEvent(View.java:7701) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2210) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1945) 我的滑动适配器包裹了我的基本适配器。 然后我有另一个适配器(ListStickyAdapter),它扩展了Decorator适配器并实现了Sticky Adapater。 mAdapter = new ListAdapter(getActivity(), data); swipeAdapter = new SwipeActionAdapter(mAdapter); ListStickyAdapter vbsa = new ListStickyAdapter(swipeAdapter); listView.setAdapter(vbsa); // […]

适配器上的Android重叠文本

在某些手机上,主要是Galaxy S2,我遇到的问题是自定义适配器的结果相互重叠。 这是用户在搜索字段中搜索单词“阴道”的示例,它是医疗应用程序。 我不确定描述这个的最好方法,而且代码在这一点上非常复杂。 用户键入单词,数据库结果显示匹配。 这些结果位于List对象中并通过适配器显示。 在大多数手机上,这可以按预期工作,结果是连续的。 在至少一个设备上,上面的屏幕截图发生了。 这是一个已知错误,我该如何解决?

使用ImageAdapter动态/编程地使用ImageViews填充GridView

我尝试开发一个Android应用程序,允许用户从flickr获取数据并在GridView显示它(带有一些不错的3Danimation)。 经过一些冒险,我几乎跑了,但现在我被卡住了。 这是问题所在: 我得到了一个UI线程“LoadPhotosTask”,它从flickr获取图片,就像开源应用程序photostream一样 。 在该子类的onProgressUpdate(LoadedPhoto… value)中,我调用了addPhoto() 。 到目前为止,每个人都很好 – 我得到了一些不错的Bitmap和Flickr.photo数据以及我需要的所有信息。 @Override public void onProgressUpdate(LoadedPhoto… value) { addPhoto(value); } 另一方面,我有一个GridView 。 现在我想填写照片。 它有一个名为ImageAdapter的适配器(它扩展了BaseAdapter ,请参阅本教程 )。 如果我在ImageAdapter类中使用数组,我可以使用一些示例图像填充GridView 。 但是如果我想在运行时填充它,我不知道该怎么做。 如何在ImageAdapter设置getView方法? 我试图用ImageAdapter值填充ImageAdapter类中的addPhoto ,但它没有显示任何内容。 首先,我设置了数组,其中包含我希望在网格中显示的照片数量(代码在ImageAdapter类中): // class variable private ImageView[] mThumbIds; […] public void setupArray(int count) { this.mThumbIds = new ImageView[count]; } 然后我用我的光刻胶的长度调用这个方法: final Flickr.PhotoList list = params[0]; […]