另一个视图回收问题自定义ArrayAdapter



我做了很多研究,我和一所大学花了几个小时试图弄清楚这一点。冒着被当作复制品关闭的风险,我没有其他地方可以求助!我遇到了很多重复ListView的解决方案,我了解视图是如何重用的(使用convertView)等。然而,我似乎找不到问题的根源。该问题具有相同的典型症状,如果我在列表中的一个EditText中输入文本,则向下输入5-6项。。。同样的文字在那里!

我在下面附上了我的getView(...)代码,以帮助你们帮助我,但如果你需要其他东西,请告诉我。

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    // inflator for all the views
    LayoutInflater vi = (LayoutInflater) mActivity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    // the object where I will be getting my display data
    final Object currentItem = drawItems.get(position);
    // standard adapter/view stuff
    View v = convertView;
    ViewHolder holder = null;
    int type = getItemViewType(position);
    if (v == null) {
        holder = new ViewHolder();
        switch (type) {
        case TYPE_ROW:
            v = vi.inflate(R.layout.row_textview, null);
            // get my views
            holder.editText= (EditText) v
                    .findViewById(R.id.line_edittextview);

            break;
        case TYPE_SUMMARY:
            v = vi.inflate(R.layout.row_summary, null);
            break;
        }
        Log.i(TAG, "Convert View Tag being set: " + holder);
        v.setTag(holder);
    } else {
        Log.i(TAG,
                "Getting holder from Convert View Tag: " + v.getTag());
        holder = (ViewHolder) v.getTag();
    }
    switch (type) {
    case TYPE_ROW:
        Log.i(TAG, "Holder in use: " + holder);
        holder.editText.setText("Line " + (position + 1));
        break;
    case TYPE_SUMMARY:
        break;
    }
    return v;
}
@Override
public int getItemViewType(int position) {
    return TYPE_BETSLIP;
}
@Override
public int getViewTypeCount() {
    return 2;
}

谢谢!:-)

我想说的是处理每一个可能的流中的视图。也就是说,如果您在if中执行某个操作,请在else中将其撤消。类似地,在你的代码中,撤销你像一样所做的文本设置

case TYPE_ROW:
    holder.textView.setText("Line " + (position + 1));
    break; 
case TYPE_SUMMARY:
    holder.textView.setText("");
    break;

希望这能奏效。其次,您正在为列表膨胀2个视图。我建议您使用一个,另一个的Visibility设置为GONE左右。

最新更新