하나의 활동 및 3 개의 단편이 있습니다. 응용 프로그램이 시작되고 조각 1이 표시됩니다. 나는 버튼을 클릭한다. 조각은 다음과 같은 인터페이스를 통해 작업과 통신 및 조각 2 출시 :하나의 인터페이스로 여러 단편 관리
public OnClickedListener listener;
static interface OnClickedListener{
public void buttonClicked(View v);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
Activity a;
if (context instanceof Activity){
a=(Activity) context;
this.listener = (OnClickedListener)a;
}
}
을 ...
playBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { listener.buttonClicked(v); } });
내 MainActivity가 Fragment1.OnClickedListener를 구현, 데이터를 수신하고 시작 조각 2.
이제 저는 조각 2에 있습니다. 단추를 클릭하고 조각 3을 실행하고 싶습니다. 조각 2에서 다른 인터페이스를 구현하여이를 수행 할 수 있다는 것을 알고 있습니다. "Hey Launch Fragment 3"이라고 말하십시오. 그래서 지금 내 활동은 모든 괜찮아요하지만이 전 20 개 조각을 가지고 있다고하자이
MainActivity implements Fragment1.OnClickedListener,Fragment2.OnClickedListener
것 같습니다. 나는 나의 주요 활동에서 20 개의 인터페이스를 구현하기를 원하지 않는다. 하나의 인터페이스를 생성하고 사용하여 각 부분과 활동간에 통신하는 방법이 있습니까? 어떻게 구현 될까요? 고맙습니다.
조금 혼란 스럽습니다. OnClickedListener라는 별도의 인터페이스를 만들었습니다. 나는 그것을 Fragment1에서 확장하고 버튼을 클릭 할 때 데이터를 가져올 수 있습니다. listener.buttonClicked (MyFragmentClassName.this, v); 어떻게하면 저의 주요 활동에 어떻게 참여할 수 있습니까? 위의 내용은 내 기본 활동이 다음과 같아야한다고 썼습니다. public class MainActivity extends Activity MainActivity.OnClickedListener를 구현합니다. 나는 당신이 여기에서 무엇을 구현하는지 확신하지 못한다. –
@mikhail이 말했듯이 인터페이스를 다른 파일에 선언하거나 MainActivity에 중첩하여 선언하십시오. –