我有一个奇怪的问题让我发疯.在我的Android应用程序中,我定制了自己的适配器,它从ArrayAdapter扩展而来.我添加了适配器的ListView项可以标记为文本(不可编辑),可编辑文本或微调器.疯狂的东西是:当我滚动ListView时,有两个问题:
(1)微调器项目中显示的(选定)值有时会发生变化,尽管我只是滚动!! 当我点击微调器时,仍会显示旧的选定值(一个,应由微调器显示)(2)滚动时ListViewItems 的顺序发生变化!
=>但是适配器中的数据不会改变(数据本身和订单都没有) - 所以它一定是View本身的问题?!也许android缓存在后台,并不会很快刷新ListViewItems或者像那样?!
有人能帮帮我吗?
多谢!
好吧,我找到了一个不太好的解决方案,但它确实有效.我只是不再使用convertView,尽管这对于内存和性能来说并不是最理想的.在我的情况下它应该没问题,因为我的ListView的最大项目数是15.这是我的Adapter-Class:
public class FinAdapter extends ArrayAdapter<Param>{
public Param[] params;
private boolean merkzettel;
protected EditText pv;
public FinAdapter(Context context, int textViewResourceId, Param[] items, boolean merkzettel) {
super(context, textViewResourceId, items);
this.params = items;
this.merkzettel = merkzettel;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final Param p = params[position];
if(p != null){
if(merkzettel){
if (convertView == null) {
LayoutInflater …Run Code Online (Sandbox Code Playgroud)