Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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 显示android中Redundent数据的列表视图_Java_Android_Android Listview_Android Listfragment - Fatal编程技术网

Java 显示android中Redundent数据的列表视图

Java 显示android中Redundent数据的列表视图,java,android,android-listview,android-listfragment,Java,Android,Android Listview,Android Listfragment,很抱歉再次问这个问题,但我在上一个问题中没有得到任何解决方案,所以请重试 在emulator上构建和运行项目时,我会获得重复的数据 这是我的密码 railcode.java public class RailCode extends Activity implements OnItemClickListener { String[] member_names; String[] contactType; List<RowCode> rowCode; ListView mylist

很抱歉再次问这个问题,但我在上一个问题中没有得到任何解决方案,所以请重试 在emulator上构建和运行项目时,我会获得重复的数据 这是我的密码

railcode.java

public class RailCode extends Activity implements OnItemClickListener {

String[] member_names;
String[] contactType;

List<RowCode> rowCode;
ListView mylistview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.railcode);

    rowCode = new ArrayList<RowCode>();

    member_names = getResources().getStringArray(R.array.member_names);


    contactType = getResources().getStringArray(R.array.contactType);

    for (int i = 0; i < member_names.length; i++) {
        RowCode code = new RowCode(member_names[i],contactType[i]);
        rowCode.add(code);
    }

    mylistview = (ListView) findViewById(R.id.list);
    CustomAdapter adapter = new CustomAdapter(this, rowCode);
    mylistview.setAdapter(adapter);
    mylistview.setOnItemClickListener(this);

}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
                        long id) {
    String member_name = rowCode.get(position).getMember_name();
    Toast.makeText(getApplicationContext(), "" + member_name,
            Toast.LENGTH_SHORT).show();
 }

}
public class CustomAdapter extends BaseAdapter {

Context context;
List<RowCode> rowItems;

public CustomAdapter(Context context, List<RowCode> rowItems) {
    this.context = context;
    this.rowItems = rowItems;
}

@Override
public int getCount() {
    return rowItems.size();
}

@Override
public Object getItem(int position) {
    return rowItems.get(position);
}

@Override
public long getItemId(int position) {
    return rowItems.indexOf(getItem(position));
}

/* private view holder class */
private class ViewHolder {
    TextView member_name;

    TextView contactType;
}

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

    ViewHolder holder = null;

    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_code, null);
        holder = new ViewHolder();

        holder.member_name = (TextView) convertView
                .findViewById(R.id.member_name);
        holder.contactType = (TextView) convertView
                .findViewById(R.id.contact_type);

        RowCode row_pos = rowItems.get(position);

        holder.member_name.setText(row_pos.getMember_name());
        holder.contactType.setText(row_pos.getContactType());

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    return convertView;
}

}
public类RailCode扩展活动实现了一个新的监听器{
字符串[]成员名称;
字符串[]联系人类型;
列出行代码;
列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.railcode);
rowCode=newarraylist();
member\u names=getResources().getStringArray(R.array.member\u names);
contactType=getResources().getStringArray(R.array.contactType);
for(int i=0;i
CustonAdapter.java

public class RailCode extends Activity implements OnItemClickListener {

String[] member_names;
String[] contactType;

List<RowCode> rowCode;
ListView mylistview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.railcode);

    rowCode = new ArrayList<RowCode>();

    member_names = getResources().getStringArray(R.array.member_names);


    contactType = getResources().getStringArray(R.array.contactType);

    for (int i = 0; i < member_names.length; i++) {
        RowCode code = new RowCode(member_names[i],contactType[i]);
        rowCode.add(code);
    }

    mylistview = (ListView) findViewById(R.id.list);
    CustomAdapter adapter = new CustomAdapter(this, rowCode);
    mylistview.setAdapter(adapter);
    mylistview.setOnItemClickListener(this);

}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
                        long id) {
    String member_name = rowCode.get(position).getMember_name();
    Toast.makeText(getApplicationContext(), "" + member_name,
            Toast.LENGTH_SHORT).show();
 }

}
public class CustomAdapter extends BaseAdapter {

Context context;
List<RowCode> rowItems;

public CustomAdapter(Context context, List<RowCode> rowItems) {
    this.context = context;
    this.rowItems = rowItems;
}

@Override
public int getCount() {
    return rowItems.size();
}

@Override
public Object getItem(int position) {
    return rowItems.get(position);
}

@Override
public long getItemId(int position) {
    return rowItems.indexOf(getItem(position));
}

/* private view holder class */
private class ViewHolder {
    TextView member_name;

    TextView contactType;
}

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

    ViewHolder holder = null;

    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_code, null);
        holder = new ViewHolder();

        holder.member_name = (TextView) convertView
                .findViewById(R.id.member_name);
        holder.contactType = (TextView) convertView
                .findViewById(R.id.contact_type);

        RowCode row_pos = rowItems.get(position);

        holder.member_name.setText(row_pos.getMember_name());
        holder.contactType.setText(row_pos.getContactType());

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    return convertView;
}

}
公共类CustomAdapter扩展了BaseAdapter{
语境;
列出项目;
公共CustomAdapter(上下文,列表行项){
this.context=上下文;
this.rowItems=rowItems;
}
@凌驾
public int getCount(){
返回rowItems.size();
}
@凌驾
公共对象getItem(int位置){
返回行项目。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回rowItems.indexOf(getItem(position));
}
/*私有视图持有者类*/
私有类视窗持有者{
TextView成员名称;
文本视图联系人类型;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
LayoutInflater mInflater=(LayoutInflater)上下文
.getSystemService(活动.布局\充气机\服务);
if(convertView==null){
convertView=mInflater.充气(R.layout.list_代码,空);
holder=新的ViewHolder();
holder.member_name=(TextView)convertView
.findViewById(R.id.成员名称);
holder.contactType=(TextView)convertView
.findViewById(R.id.联系人类型);
RowCode row_pos=rowItems.get(位置);
holder.member_name.setText(row_pos.getMember_name());
holder.contactType.setText(row_pos.getContactType());
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
返回视图;
}
}
请帮助我,我无法理解它显示重复数据
提前谢谢!!!!!1

公共类CustomAdapter扩展了BaseAdapter{

Context context;
List<RowCode> rowItems;

public CustomAdapter(Context context, List<RowCode> rowItems) {
    this.context = context;
    this.rowItems = rowItems;
}

@Override
public int getCount() {
    return rowItems.size();
}

@Override
public Object getItem(int position) {
    return rowItems.get(position);
}

@Override
public long getItemId(int position) {
    return rowItems.indexOf(getItem(position));
}

/* private view holder class */
private class ViewHolder {
    TextView member_name;

    TextView contactType;
}

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

    ViewHolder holder = null;

    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_code, null);
        holder = new ViewHolder();

        holder.member_name = (TextView) convertView
                .findViewById(R.id.member_name);
        holder.contactType = (TextView) convertView
                .findViewById(R.id.contact_type);

        RowCode row_pos = rowItems.get(position);



        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
        holder.member_name.setText(row_pos.getMember_name());
        holder.contactType.setText(row_pos.getContactType());
    return convertView;
}

}
语境;
列出项目;
公共CustomAdapter(上下文,列表行项){
this.context=上下文;
this.rowItems=rowItems;
}
@凌驾
public int getCount(){
返回rowItems.size();
}
@凌驾
公共对象getItem(int位置){
返回行项目。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回rowItems.indexOf(getItem(position));
}
/*私有视图持有者类*/
私有类视窗持有者{
TextView成员名称;
文本视图联系人类型;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
ViewHolder=null;
LayoutInflater mInflater=(LayoutInflater)上下文
.getSystemService(活动.布局\充气机\服务);
if(convertView==null){
convertView=mInflater.充气(R.layout.list_代码,空);
holder=新的ViewHolder();
holder.member_name=(TextView)convertView
.findViewById(R.id.成员名称);
holder.contactType=(TextView)convertView
.findViewById(R.id.联系人类型);
RowCode row_pos=rowItems.get(位置);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.member_name.setText(row_pos.getMember_name());
holder.contactType.setText(row_pos.getContactType());
返回视图;
}
}

希望它能工作

行代码
保持架。*.setText()
行移动到
if else
块之后,在
返回
之前。这不是问题,帕雷什..谢谢你,迈克,我现在收到了,没有冗余数据:)迈克很早就来找我了,然后你要复制它answer@Paresh请再检查一下,你会发现。。我已经放置了RowCode row_pos=rowItems.get(position);行外部if-else条件。不能放置行代码行\u pos=rowItems.get(位置);如果条件为,则行内。。因为如果条件为false,则会得到重复的数据。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。以前分配的数据。迈克也说过,你可以看到,在我问题的第一条评论中,我没有读他的评论,我只是检查了他的答案,我发现了错误。所以我只是纠正它:)