제가 리스트뷰나 어댑터의 개념이 딸려서 그런지 몰라도 구글링을 해보거나 여러곳을 찾아봐도

 

도대체 모르겠습니다.

 

지금 구현된 형태는 액티비티에 리스트뷰를 하나 만들어놨고

 

다른 클래스에 BaseAdapter를 받아서 어댑터를 구현해 놨습니다.

 

로우에는 체크박스 , 텍스트뷰, 버튼 이렇게 세개가 있고

 

버튼을 눌렀을 때 이 로우가 삭제되고

 

화면에 바로 갱신이 되게 하고 싶습니다.

 

어댑터에서 버튼에 리스너 달고 자료를 지워도 화면에 반영이 되질 않습니다.

 

알아본바로는 어댑터 안에서는

 

notifyDataSetChanged() 가 안먹인 다고 알고 있는데

 

리스트가 있는 액티비티에서 또 버튼리스너를 달으려니 또 안 달아 집니다. 영문을 모르겠습니다.

 

액티비티에서 삭제버튼을 누르면 발생하는 리스너를 구현해야 한다면 어떻게 리스너를 달아야 되고

 

아니면 어댑터내에서 해결을 하려면 어떻게 해야 되는지 제발 방법좀 알려주세요.

 

부탁드려요.

 

일단 액티비티의 코드입니다.!!!!

 public class vms extends Activity{ //implements BookMarkAdapterListner{
  HashMap<String,String> hm;
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.l_vms);
  
     hm = new TryAccData(vms.this).accVmsDataList(hello.vmsListUrl,null,null);
     if(!(hm.get("nothing[0]")==null)&&hm.get("nothing[0]").equals("nothing"))return;
     
    
     final vmsListAdapter vmsListAdapter = new vmsListAdapter(this,vms.this,R.layout.vms_row_main, hm);
  ListView vmsListMain = (ListView) findViewById(R.id.vmsListMain);
  vmsListMain.setAdapter(vmsListAdapter);//어댑터로 리스튜뷰에 리스트 집어넣음
  
  /*Button launch = (Button)findViewById(R.id.vmsDelBtn); 
         
     launch.setOnClickListener(new View.OnClickListener(){ 
            public void onClick(View v) { 
                
          }
     });*/
  vmsListMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   public void onItemClick(AdapterView<?>parent,View view , int position, long id)
   {
    vmsListAdapter.notifyDataSetChanged();
   }
  });
     
    
 }

이것 저것 다 해봐서 소스가 좀 지저분하네요.

 

그리고 이것은 어댑터의 getview소스입니다.

 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  if(convertView == null){
   convertView = inflater.inflate(mListLayout, parent,false);
  }
  
  CheckBox cb = (CheckBox)convertView.findViewById(R.id.isRead);
  cb.setFocusable(false);//체크박스가 포커스를 가지고 있음녀 리스트뷰의 리스너가  안먹는다 그래서 이 것을 false로 설정
  cb.setClickable(false);//체크박스가 안에서 클릭이 안되게 설정
  final int positionInt = position;
  //TryAccData set =new TryAccData();
  TextView subject = (TextView) convertView.findViewById(R.id.play_vms);
  
  subject.setText((position+1)+". " + hm.get("regdate["+position+"]"));
  //Log.i("체크",hm.get("rwflag["+position+"]"));
  String rwflag=hm.get("rwflag["+position+"]");
  
  if(rwflag.equals("true"))
   cb.setChecked(true);
  else
   cb.setChecked(false);
  
  Button vmsDelBtn = (Button) convertView.findViewById(R.id.vmsDelBtn);
  
  try{
   vmsDelBtn.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View v){
     del(positionInt);
     
    }
   });
   subject.setOnClickListener(new Button.OnClickListener(){
    public void onClick(View v){
     set(positionInt);
    }
   });
  } catch (Exception e){
   Log.e("vmsbuttonlistener",e.getMessage());
  }
  
  notifyDataSetChanged();
  return convertView;
 }

마지막으로 로우의 XML소스입니다.

 

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
  
    
     <TextView android:text="제목" 
     android:layout_toRightOf="@+id/isRead"
     android:maxLines="4"
     android:lines="4"
     android:ellipsize="end"
     android:layout_width="230px" 
     android:layout_height="wrap_content" 
     android:id="@+id/play_vms"
    ></TextView>
    
 
    <CheckBox
     android:layout_width="wrap_content" 
     android:id="@+id/isRead" 
     android:layout_height="wrap_content"
     android:text =""
     android:layout_alignParentLeft="true"
     android:focusableInTouchMode="false"
     android:focusable="false"
     android:clickable="false"
    />
   <TextView android:id="@+id/textview" 
      android:layout_width="wrap_content" 
     android:text="" 
     android:textSize="8px"
     android:layout_height="wrap_content" 
     android:layout_below="@+id/isRead" 
     android:layout_alignLeft="@+id/isRead"
     android:focusableInTouchMode="false"
    ></TextView>
    <Button  
      android:id="@+id/vmsDelBtn"
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="삭제"
      android:layout_alignParentRight="true" 
      android:layout_toRightOf="@+id/play_vms"
      
    />
  
</RelativeLayout>

제가  리스트뷰에 설정할 데이터로 해쉬맵데이터로 쓰고 있는데요..  충분히 찾아보지 않고 올렸다고 하셔도 할말없지만

이 문제때문에 찾아보면서도 삼일째 해결을 못하고 있습니다. 도와 주세요