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