我在這裏要做的是有一個按鈕來添加一個新的條目到我的自定義listView,就像添加到卡概念。添加一個新的條目到ArrayAdapter
但是,一切工作正常,只是當我點擊按鈕只有一個條目被添加,而當我第二次點擊它沒有任何改變。
我的片段
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;
}
}
你用代碼填充視圖的代碼顯然是錯誤的。 'holder'變量應該在'getView()'內聲明,並且如果使用'convertView!= null',則應該初始化。 – flx
我編輯了我的代碼,但仍然沒有機會, –