2011-05-02 14 views
2

ListView에서 선택한 항목을 삭제하려고하지만 할 수 없습니다. 나는 많은 방법을 시도했지만 그들은 나를 위해 일하지 않습니다.ListView에서 선택한 항목 제거

이것은 내 어댑터 목록입니다. 항목은 SD 카드에서 가져옵니다.

ArrayAdapter<String> adapter = new ArrayAdapter<String>(
         FindFilesByType.this, android.R.layout.test_list_item, 
         Ringtones); 

이 문제를 어떻게 해결할 수 있습니까?

답변

3

기본 목록에서 항목을 제거하고 데이터 세트가 변경된 어댑터에 신호를 보낼 수 있습니다.

예를 들어 this method을 살펴보십시오.

1
@Override 
      public View getView(final int position, View convertView, ViewGroup parent) { 
       // TODO Auto-generated method stub 
       LayoutInflater inflater=cntx.getLayoutInflater(); 
       View row=inflater.inflate(R.layout.bookmark_row,null); 

       TextView tv=(TextView)row.findViewById(R.id.txtToc); 
       final TextView tv2=(TextView)row.findViewById(R.id.txtPgNo); 
       mCursor.moveToPosition(position); 
       System.out.println("Count Cursor"+mCursor.getCount()); 
       if(mCursor.getCount()<=0) 
       { 
        tv.setText("No Bookmark Found"); 
       } 
       else 
       { 
       tv.setText(mCursor.getString(1).toString()); 
       tv2.setTag(mCursor.getString(0).toString()); 
       tv2.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 
         System.out.println(position); 
         db_conn.onDelete("tab_book", mCursor.getColumnName(0),Integer.parseInt((String) tv2.getTag())); 
//      Toast.makeText(ctx,"Bookmark Deleted", Toast.LENGTH_SHORT).show(); 
         mToastTextView=new toastTextview(0, 0, ctx,listAct); 
         mToastTextView.showMessage("Bookmark Deleted"); 
         refresh(); 
        } 
       }); 
       row.setTag(mCursor.getString(2).toString()); 
       } 
       return row; 
      } 


     public void refresh() 
     { 
      mCursor=db_conn.onQueryGetCursor("tab_book",mItems,null, null, null, null, null); 
      mCursor.moveToPosition(0); 
      notifyDataSetChanged(); 
      if(mCursor.getCount()<=0) 
      { 
//    Toast.makeText(ctx, "No Bookmark", Toast.LENGTH_SHORT).show(); 
       try { 
        mFlingAct.dialogBookmark.dismiss(); 
       } catch (Exception e) { 
        // TODO: handle exception3 
        e.printStackTrace(); 
       } 

      } 

     } 
2

arrayList.remove 호출 후 onitemclickListener를 구현 (ID를 얻기) 항목을 얻을 ArrayAdapter와의 클릭 및 ([ID]); adapter.notifyDataSetChanged();