2013-01-01 3 views
0

내 문제는 ListView/Database에서 최상위 "메모"만 삭제되지만 원하는 "메모"가 삭제된다는 것입니다. 여기 목록보기 항목 삭제

@Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     datasource = new CommentsDataSource(this); 
     datasource.open(); 

     List<Comment> values = datasource.getAllComments(); 

     // Use the SimpleCursorAdapter to show the 
     // elements in a ListView 
     ArrayAdapter<Comment> adapter = new ArrayAdapter<Comment>(this, 
      android.R.layout.simple_list_item_1, values); 
     setListAdapter(adapter); 




     this.getListView().setClickable(true); 
      this.getListView().setOnItemClickListener(new OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 

        Toast.makeText(MainActivity.this, "postion: " + getListView().getSelectedItemPosition(), Toast.LENGTH_SHORT).show(); 

즉의 getItem (0) 항상 어댑터 (따라서 목록보기)의 첫 번째 항목을 제거하는 것입니다 사용 getcount> 0

    ArrayAdapter<Comment> adapter = (ArrayAdapter<Comment>) getListAdapter(); 
        Comment comment = null; 
        if (getListAdapter().getCount() > 0) { 
         comment = (Comment) getListAdapter().getItem(0); 
         datasource.deleteComment(comment); 
         adapter.remove(comment); 
         } 
        return; 
       }}); 
      } 
+0

답변 해 주셔서 감사 드리며 귀하는 저에게 정직했습니다. – android

+0

언제든지 환영 합니다만 답변 내용을 확인하려면 선택 표시를 클릭하십시오. 거의 응답이 없으므로 가장 가깝거나 가장 도움이되는 답변을 수락하십시오. 완성 된 앱에 행운을 비네! – Sam

답변

0

에서 문제입니다.

클릭 할 때 항목을 제거하려면 onItemClick에서 다음 코드를 사용하십시오.

Comment comment = (Comment) adapter.getItem(position); 
datasource.deleteComment(comment); 
adapter.remove(comment); 

그게 전부입니다.

+0

완벽하게 작동하지만 목록보기 항목을 클릭하여 옵션 메뉴를 열고 옵션 메뉴 항목을 클릭하면 "주석"을 삭제할 수 있습니다. 누군가 나를 도울 수 있습니까? – android

+0

그런 다음 누군가가 어댑터의 항목 중 하나를 클릭 할 때마다 ArrayList에 항목의 위치를 ​​추가하고 delete menu 옵션을 누르면 어댑터의 모든 주석 색인을 삭제하십시오. –