Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 因为我的arrayadapter,每第七项我就得到一个副本?_Java_Android_Json_Facebook_Adapter - Fatal编程技术网

Java 因为我的arrayadapter,每第七项我就得到一个副本?

Java 因为我的arrayadapter,每第七项我就得到一个副本?,java,android,json,facebook,adapter,Java,Android,Json,Facebook,Adapter,每第七次我在我的listview中得到一个重复的项目,它从Result nr 1开始,所以这是我的listview 项目1 项目2 项目3 项目4 项目5 项目6 项目7 项目1 项目2 项目3 项目4 我想这是因为我的arrayadapter,但我不知道故障出在哪里这是我的适配器: import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.

每第七次我在我的listview中得到一个重复的项目,它从Result nr 1开始,所以这是我的listview

项目1 项目2 项目3 项目4 项目5 项目6 项目7 项目1 项目2 项目3 项目4

我想这是因为我的arrayadapter,但我不知道故障出在哪里这是我的适配器:

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ListEventAdapter extends ArrayAdapter<EventDetails> {

    public ListEventAdapter(Context context, int textViewResourceId) {
        super(context, textViewResourceId);
        // TODO Auto-generated constructor stub
    }

    private List<EventDetails> eItems;

    public ListEventAdapter(Context context, int resource, List<EventDetails> eItems) {

        super(context, resource, eItems);

        this.eItems = eItems;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View v = convertView;

        TextView txtAttending_count = null;
        TextView txtName = null;

        if (v == null) {

            LayoutInflater vi;
            vi = LayoutInflater.from(getContext());
            v = vi.inflate(R.layout.event_item, null);

            txtAttending_count = (TextView) v.findViewById(R.id.attending_count);
            txtName = (TextView) v.findViewById(R.id.name);
        }

        EventDetails p = eItems.get(position);

        if (p != null) {

            if (txtAttending_count != null) {
                txtAttending_count.setText(""+p.getAttending_count());
            }
            if (txtName != null) {

                txtName.setText(""+p.getName());
            }
        }



        return v;

    }
}
import java.util.List;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.TextView;
公共类ListEventAdapter扩展了ArrayAdapter{
公共ListEventAdapter(上下文,int textViewResourceId){
super(上下文,textViewResourceId);
//TODO自动生成的构造函数存根
}
私人名单;
公共ListEventAdapter(上下文、int资源、列表EITEM){
super(上下文、资源、eItems);
this.eItems=eItems;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=转换视图;
TextView txtu count=null;
TextView txtName=null;
如果(v==null){
拉平机vi;
vi=LayoutInflater.from(getContext());
v=vi.充气(R.布局.事件\项目,空);
txtAttenting_count=(TextView)v.findViewById(R.id.attenting_count);
txtName=(TextView)v.findviewbyd(R.id.name);
}
EventDetails p=eItems.get(位置);
如果(p!=null){
if(txtu计数!=null){
txtAttenting_count.setText(“+p.getAttenting_count());
}
if(txtName!=null){
setText(“+p.getName());
}
}
返回v;
}
}
这两条线应该在if之外。
现在,仅在创建新视图时才指定这些字段。如果您正在重新使用已从屏幕上滚出的视图(这可能是因为它“每7次”出现一次),
txtu count
txtName
保持
null
并且您从不使用新值更新它们,这意味着您可以再次看到原始视图。

OMG谢谢!为什么我没想到这个。我想我需要一些睡眠。谢谢你!!不知道我没做这个问题似乎离题了,因为它太本地化了。这个答案对任何人都没有帮助。相信我,在我最终学会之前,你不会想知道我有多少次犯错
txtAttending_count = (TextView) v.findViewById(R.id.attending_count);
txtName = (TextView) v.findViewById(R.id.name);