Java 向listview添加和删除自定义项

Java 向listview添加和删除自定义项,java,android,listview,listadapter,custom-adapter,Java,Android,Listview,Listadapter,Custom Adapter,目前,我正在向列表视图添加一个自定义行(包含和编辑文本以及用于添加/删除行的加号和减号)。但是,每次添加一行时,所有编辑文本中的内容都会被删除 public class ingredientView extends BaseAdapter implements ListAdapter { private ArrayList<String> list = new ArrayList<String>(); private Context context; public

目前,我正在向列表视图添加一个自定义行(包含和编辑文本以及用于添加/删除行的加号和减号)。但是,每次添加一行时,所有编辑文本中的内容都会被删除

public class ingredientView extends BaseAdapter implements ListAdapter {
private ArrayList<String> list = new ArrayList<String>();
private Context context;



public ingredientView(ArrayList<String> list, Context context) {
    this.list = list;
    this.context = context;
}

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

@Override
public Object getItem(int pos) {
    return list.get(pos);
}

@Override
public long getItemId(int pos) {
    return 0;
    //just return 0 if your list items do not have an Id variable.
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if (view == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.ingredient_item, null);
    }

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_dropdown_item_1line, loadedFood);

    //Handle TextView and display string from your list
    InstantAutoComplete listItemText = (InstantAutoComplete) view.findViewById(R.id.recipe_ingredients);
    listItemText.setAdapter(adapter);

    listItemText.setText(list.get(position));

    //Handle buttons and add onClickListeners
    ImageButton deleteBtn = (ImageButton)view.findViewById(R.id.ingredient_minus_button);
    ImageButton addBtn = (ImageButton)view.findViewById(R.id.ingredient_plus_button);

    deleteBtn.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            //do something
            if (list.size()>1){
                list.remove(position); //or some other task
                notifyDataSetChanged();}
        }
    });
    addBtn.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            //do something
            list.add(position+1,"");
            notifyDataSetChanged();

        }
    });

    return view;
}


private static final String[] loadedFood = new String[]{
        "eggs","milk","butter","flour"

};
公共类ingredientView扩展BaseAdapter实现ListAdapter{
private ArrayList list=new ArrayList();
私人语境;
public ingredientView(ArrayList列表,上下文){
this.list=列表;
this.context=上下文;
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共对象getItem(int-pos){
返回列表。获取(pos);
}
@凌驾
公共长getItemId(int-pos){
返回0;
//如果列表项没有Id变量,只需返回0。
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图=转换视图;
如果(视图==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
视图=充气机。充气(R.layout.Component\u项,空);
}
ArrayAdapter=新的ArrayAdapter(上下文,android.R.layout.simple\u下拉菜单\u项目\u 1行,loadedFood);
//处理列表中的文本视图和显示字符串
InstantAutoComplete列表项文本=(InstantAutoComplete)视图.findViewById(R.id.recipe\u配料);
setAdapter(适配器);
listItemText.setText(list.get(position));
//处理按钮并添加onClickListeners
ImageButton deleteBtn=(ImageButton)view.findViewById(R.id.component\u减去\u按钮);
ImageButton addBtn=(ImageButton)view.findViewById(R.id.component\u plus\u按钮);
deleteBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//做点什么
如果(list.size()>1){
list.remove(position);//或其他任务
notifyDataSetChanged();}
}
});
addBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//做点什么
列表。添加(位置+1,“”);
notifyDataSetChanged();
}
});
返回视图;
}
私有静态最终字符串[]loadedFood=新字符串[]{
“鸡蛋”、“牛奶”、“黄油”、“面粉”
};

}

发布将项目添加到列表中的方法please@JonathanAste它是addbtn.setOnClickListener