2011-03-22 2 views
0

Spinner (항목 카테고리 선택), 주문을 표시하는 목록보기 및 선택한 카테고리 (스피너)에 따라 동적으로 버튼으로 채워지는 다른 listview -articles를 보여주는 액티비티가 있습니다. 기사 단추가 클릭되면 기사를 orderAdaptor에 추가하려고합니다.버튼을 클릭했을 때 listviewadapter에 항목을 추가하려면 어떻게해야합니까?

View.OnClickListener에있을 때 목록 어댑터에 대한 참조를 가져올 수 있습니까?

답변

0

괜찮은 도움을 받으려면 코드를 게시해야하지만 Activity 내부에서 익명의 내부 클래스로 View.OnClickListener를 구현하는 것처럼 들립니다.

당신은 일반적으로 항상 완전히 참조를 정규화하여 어댑터를 얻을 수 있습니다 :

MyActivity가 활동을 확장하고 mListView라는 이름의 회원 목록보기를 보유 추정되는 클래스 이름입니다
MyActivity.this.mListView.getAdapter(); 

.

+0

실제로 익명의 내부 클래스는 아니지만 별도의 클래스입니다. 귀하의 의견을 토대로 간단히 부모 작업을 전달하는 onclickhandler 클래스에 생성자를 추가했습니다. 나는 그 때 당신의 해결책을 사용할 수 있었고 그 트릭을했습니다. – Tanguy

0

당신은 onClickListener의 생성자에 그것을 전달하고 그것을 리스너의 멤버 변수에 보관할 수 있습니다. 또는보기에서 setTag을 사용하여 어댑터에 대한 참조를 버튼에 숨긴 다음 다음과 같이 onClick 수신기에서 검색 할 수 있습니다 getTag. 또는 뷰 수신기를 액티비티의 비 정적 인 내부 클래스로 만들고 액티비티의 다른 모든 것들과 동일한 방식으로 어댑터에 액세스 할 수 있습니다 (일반적으로 명시 적으로 선호하고 리스너를 정적/다른 클래스로 유지하는 것을 선호하지만).

관련 문제