비슷한 질문 하나만 발견되어 도움이되지 않았습니다. 내가 붙어서 네가 나를 도울 수 있기를 바란다.내 어댑터에서 ExpandableListView 새로 고침
이 내 사용자 정의 어댑터 (단지 관련 부분)입니다 :
MyExpandableListAdapter
:
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
//...
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View view, ViewGroup parent) {
ChildInfo childInfo = (ChildInfo) getChild(groupPosition, childPosition);
if (view == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = infalInflater.inflate(R.layout.prisustva_detaljno_child_row,
null);
}
Button delete = (Button) view.findViewById(R.id.delete);
delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout Rl = (RelativeLayout) v.getParent();
TextView id = (TextView) Rl.findViewById(R.id.id_prisustvo);
PrisustvaAdapter deleteByID = new PrisustvaAdapter(context);
deleteByID.openToWrite();
deleteByID.openToRead();
deleteByID.deleteID(id .getText().toString());
deleteByID.close();
Toast.makeText(context, "Successfully deleted!",
Toast.LENGTH_LONG).show();
}
});
// ...
return view;
}
// ...
}
당신은 내가 내 ExpandableListView
의 모든 자식 행의 버튼을 볼 수있다. 해당 버튼을 클릭하면 데이터베이스에서 삭제 프로세스가 트리거됩니다. 어댑터 내에서 삭제 작업을해야한다는 것을 알 수 있습니다. 자식 행 내부의 버튼에 대한 클릭 이벤트 만 생성 할 수 있기 때문입니다. 데이터베이스에서 데이터를 제거 할 때 내 ExpandableListView
을 어떻게 새로 고칠 수 있는지 알고 싶습니다. 어댑터 내부에서해야합니까? 그렇지 않은 경우 대체 방법은 무엇입니까?
추신 : 많은 코드가 필요한 분은 알려 주시기 바랍니다.
이미 시도했지만 작동하지 않았습니다. 자식 행을 삭제 한 후에'notifyDatasetChanged()'를 호출하면 안됩니다. 왜냐하면 나는 목록에서가 아니라 내 데이터베이스에서만 그것을 삭제하기 때문입니다. 내가 ListView에서 일했을 때 나는'notifyDatasetChanged()'라고 불리는이 메소드'adapter.remove()'와'adapter.add()'를 가지고 있었고 매력처럼 작동했지만 나는 그것을 알 수 없다. ExpandableListView. – Aksiom
어댑터가 목록이 아닌 (데이터베이스가 아닌) 목록을 기반으로하는 경우 목록에서 제거한 다음 notifyDataSetChanged()를 호출해야합니다. – znat
내 목록에서 특정 항목을 제거하는 방법을 찾은 후에 관리했습니다. 그건 내 유일한 문제 였고 너무 단순했습니다. 당신의 힌트에 감사드립니다, 많이 도와 줬어. P. 나는 LinkedHashMap과 연결된 ArrayList의 ArrayList를 가졌다. Didnt는 처음에는 특정 항목을 가져 오는 방법을 알고 있습니다. 그러나 결국 그것은 간단했습니다. – Aksiom