2012-08-25 5 views
0

MainGamePanel이라는 클래스를 사용하여 SurfaceView를 확장합니다. 여기에서 업데이트 및 드로잉 코드를 처리하는 스레드를 실행합니다. 그런 다음 MainGamePanel과 FrameLayout을 실행하는 상대 레이아웃을 포함하는 editor.xml 파일을 실행하는 액티비티가 있습니다.이 컨테이너는 프래그먼트를 보관할 컨테이너로 사용됩니다. 그래서 MainGamePanel은 화면의 2/3을 차지하고 조각은 화면의 나머지 1/3을 차지하는 오른쪽에 있습니다.mainThread 내의 멤버에 액티비티 또는 프래그먼트로 액세스

조각에는 MainGamePanel 내에있는 개체를 재설정하는 데 사용할 단추가 있습니다. 내 조각에서 MainGamePanel 멤버에게 액세스하거나 그 반대로 액세스하려면 어떻게해야합니까? 여기

Button button = (Button) view.findViewById(R.id.resetGrid_button); 

// A simple OnClickListener for our button. You can see here how a Fragment can encapsulate 
// logic and views to build out re-usable Activity components. 
button.setOnClickListener(new OnClickListener() 
{ 
    public void onClick(View v) 
    { 
     Activity activity = getActivity(); 

     if (activity != null) 
      Toast.makeText(activity, R.string.reset_button, Toast.LENGTH_LONG).show(); 



    } 

}); 

대신 그냥 내 MainGamePanel 서피스 뷰 SurfaceView 클래스에있는 일부 개체를 다시하고 싶은 토스트를하는 클릭 I 버튼을 확인 나의 조각에 대한 코드입니다. 시간을내어 주셔서 감사 드리며 자신이 보낼 수있는 모든 정보를 제공해드립니다.

응답 : 내 활동 내에서 내보기를 처리해야하고 활동에 정보를 액세스해야한다고 알았습니다. 그런 다음 사용자가 내 프래그먼트에서 버튼을 클릭하면 활동이 정보를 알고 업데이트합니다. 당신의 활동이 누른 버튼에 대해 알고 일단 이 http://developer.android.com/training/basics/fragments/communicating.html

당신이 사용자 정의 클래스 내에서 공용 메서드를 호출해야합니다 - 당신은 활동과 조각 사이에서 통신 할 수있는 인터페이스를 만들 필요가

+0

http://developer.android.com/training/basics/fragments/communicating.html – zapl

+0

그 부분과 활동 사이의 통신 방법을 설명하지만 MainGamePanel 클래스는 사용자 정의 surfaceView 클래스이며 이것은 클래스 I입니다. 의사 소통을해야하므로 아직 혼란 스럽습니다. – Pedrom

답변

0

이 예제를 따라 원하는 논리를 처리합니다.

관련 문제