마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

BaseAdapter에서 Activity에 있는 다른 listview remove하기 질문입니다

0 추천

    	Main.java (Activity)파일

    	items1 = new ArrayList<String>();
    	items2 = new ArrayList<String>();
    	
        adapter1 = new ArrayAdapter<String>(this, R.layout.listitem2, items1);
        adapter2 = new ArrayAdapter<String>(this, R.layout.listitem2, items2);
        
        lv1 = (ListView)findViewById(R.id.P1_list_1);
        lv1.setAdapter(adapter1);
        
        lv2 = (ListView)findViewById(R.id.P1_list_2);
        lv2.setAdapter(adapter2);
        
	mListView = (ListView)findViewById(R.id.p1_main_list);
	
	mCareList = new ArrayList<OneInfo>();
        
	mListView.setAdapter(new OneA(this, mCareList));
		
OneA.java (BaseAdapter)

public View getView(final int position, View convertview, ViewGroup parent) {
		
		View v = convertview;
		
		if(v == null){
			viewHolder = new ViewHolder();
			v = inflater.inflate(R.layout.list_one, null);
			viewHolder.tv_title = (TextView)v.findViewById(R.id.list_one_tv1);
			viewHolder.iv_image = (ImageView)v.findViewById(R.id.list_one_iv1);
			
			v.setTag(viewHolder);
			
		}else {
			viewHolder = (ViewHolder)v.getTag();
		}
		
		viewHolder.tv_title.setText(getItem(position).title);
		
		viewHolder.iv_image.setTag(position);
		viewHolder.iv_image.setBackgroundDrawable(getItem(position).image);
		viewHolder.iv_image.setOnClickListener(new OnClickListener(){
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				//리스트뷰의 image가 눌려젔을때
				
				
			}
			
		});
		
		return v;
	}

public class OneInfo {

	public String title;
	public Drawable image;
	
	public OneInfo() { }
	
	public OneInfo(String title, Drawable image){
		
		this.title = title;
		this.image = image;
		
	}
}

제가 하고싶은것은 OneA의 클레스에서 

 

onClick을 눌렸을때 position의 숫자가 1일경우

Main에서 lv1, lv2의 1번 리스트 항목이 지워지는걸 원합니다

  public void onClick(View v) {

       Main main = new Main();

       main.items1.remove(1);

       main.adapter1.notifyDataSetChanged();

 

       main.items2.remove(1);

       main.adapter2.notifyDataSetChanged();

   }

대충 이런식으로 구현하고싶은대 자세하게 부탁드립니다 ㅠ_ㅠ

호랑이말코 (660 포인트) 님이 2013년 3월 4일 질문

1개의 답변

0 추천
클릭 리스너를 메인 클래스(액티비티)에서 구현 / 생성해서

아답터의 생성자를 통해서 넘겨주고

아답터에서는 getView 메소드에서 넘겨받은 리스너를 등록해 주면 되죠.

 

포시션 값은 getView메소드에서 해당 뷰의 setTag 메소드로 포지션 값을 등록하고

리스너의 onClick에서는 뷰의 getTag로 포지션 값을 가져오면 됩니다. (auto boxing / unboxing 사용)
원조안드로이드 (58,190 포인트) 님이 2013년 3월 4일 답변
...