по поводу редактирования элементов — как то-так:
public void onItemClick(AdapterView list, View v, int position, long id) {
TextView text_view = (TextView) v.findViewById(R.id.item_text_view);
String text = text_view.getText();
v.removeView(text_view);
LayoutInflater li = getLayoutInflater(this);
View editable_view = li.inflate(R.layout.editable_item, null);
editable_view.findViewById(R.id.editable_edit_text).setText(text);
v.addView(editable_view);
}
при этом корневой элемент в разметке item'a должен быть ...Layout