Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Android 向ArrayAdapter添加新条目_Android_Android Arrayadapter - Fatal编程技术网

Android 向ArrayAdapter添加新条目

Android 向ArrayAdapter添加新条目,android,android-arrayadapter,Android,Android Arrayadapter,我在这里尝试的是使用一个按钮向我的自定义listView添加一个新条目,类似于“添加到卡片”的概念 然而,一切正常,只是当我点击按钮时,只添加了一个条目,当我第二次点击它时,没有任何变化 我的碎片 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { rootView=inflater.inflate(R.layout.frag

我在这里尝试的是使用一个按钮向我的自定义listView添加一个新条目,类似于“添加到卡片”的概念

然而,一切正常,只是当我点击按钮时,只添加了一个条目,当我第二次点击它时,没有任何变化

我的碎片

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    rootView=inflater.inflate(R.layout.fragment_port_group, container,false);
    injectViews();
    mGroupPortAdapter=new GroupPortLazyAdapter(getActivity());
    addToList.setOnClickListener(new OnAddToListClickLinsten());
    return rootView;
 }


public class OnAddToListClickLinsten implements OnClickListener{

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    mGroupPortAdapter.add(new GroupPortInModel("23424",12321324,"0177889062"));
    portGroupListView.setAdapter(mGroupPortAdapter);

}

 }
这是惰性适配器

公共类GroupPortLazyAdapter扩展了ArrayAdapter{ 私有int[]颜色=新int[]{0x30bebebe,0x30FFFFFF}

public GroupPortLazyAdapter(Context context) {
    super(context, -1);
}

@Override
public View getView(int position, View convertView, ViewGroup arg2) {
     ViewHolder holder;


    if (convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(
                R.layout.port_group_custom_list_view, null);
        holder = new ViewHolder();
        holder.acountId = (TextView) convertView
                .findViewById(R.id.port_account_id);
        holder.serialNo = (TextView) convertView
                .findViewById(R.id.port_serial_no);
        holder.phoneNumber = (TextView) convertView
                .findViewById(R.id.port_phone_number);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    holder.acountId.setText(getItem(position).getAcountId());
    holder.serialNo
            .setText(String.valueOf(getItem(position).getSerialNo()));
    holder.phoneNumber.setText(getItem(position).getPhone());
    int colorPos = position % colors.length;
    convertView.setBackgroundColor(colors[colorPos]);
    return convertView;
}

static class ViewHolder {
    TextView acountId;
    TextView serialNo;
    TextView phoneNumber;
    int position;
}

}

您是否尝试过使用
mGroupPortAdapter.notifyDatasetChanged()
而不是
portGroupListView.setAdapter(mGroupPortAdapter)

另外,您可以尝试将其用作
getView()


保持架填充视图显然是错误的。如果
convertView!=null
。我已经编辑了我的代码,但仍然没有机会,请尝试使用我刚刚编辑到答案中的getView。非常感谢我的朋友,你所指出的都是正确的,但我刚刚发现了错误,我的listView嵌套在scrollView中,这导致了问题。谢谢你的回答…太棒了,很高兴你能成功。如果我的回答有帮助,请考虑。
@Override
public View getView(int position, View convertView, ViewGroup arg2) {
    GroupPortInModel item = getItem(position);

    if (convertView == null) {
        convertView = LayoutInflater.from(getContext()).inflate(
                R.layout.port_group_custom_list_view, null);
    }

    ((TextView) convertView.findViewById(R.id.port_account_id))
        .setText(item.getAcountId());
    ((TextView) convertView.findViewById(R.id.port_serial_no))
        .setText(item.getSerialNo());
    ((TextView) convertView.findViewById(R.id.port_phone_number))
        .setText(item.getPhone());

    int colorPos = position % colors.length;
    convertView.setBackgroundColor(colors[colorPos]);

    return convertView;
}