[android] 어댑터에서 호출 활동 메소드



Answers

다음과 같이 할 수 있습니다.

선언 인터페이스 :

public interface MyInterface{
    public void foo();
}

귀하의 활동 imlement 그것을 보자 :

public class MyActivity extends Activity implements MyInterface{
    public void foo(){
        //do stuff
    }
}

그런 다음 ListAdater에 활동을 전달하십시오.

public MyAdapter extends BaseAdater{
    private MyInterface listener;

    public MyAdapter(MyInterface listener){
        this.listener = listener;
    }
}

그리고 어딘가에, 당신이 그 Activity 메소드를 호출 할 필요가있을 때 :

listener.foo();
Question

ListAdapter Activity 정의 된 메서드를 호출 할 수 있습니까?

( list's 행에 Button 을 만들고 싶을 때이 버튼을 클릭하면 해당 Activity에 정의 된 메서드를 수행해야합니다 ListAdapter 에서 onClickListener 를 설정하려고 ListAdapter 메서드를 호출하는 방법을 알지 못합니다. 그 길은 뭐야 ...)

Activity.this.method() 사용할 때 다음 오류가 발생합니다.

No enclosing instance of the type Activity is accessible in scope

어떤 아이디어?




기본적이고 간단합니다.

어댑터에서 간단하게 이것을 사용하십시오.

((YourParentClass) 컨텍스트) .functionToRun ();




if(parent.getContext() instanceof yourActivity){
//execute code
}

이 조건은 adaptergetView() 메소드에서보기를 요청하는 GroupView 가있는 활동이 GroupView 경우 작업을 수행 할 수있게합니다

참고 : parent 는 GroupView입니다.




Related