2016-08-10 3 views
0

아무런 활동도하지 않는 클래스에서 onActivityResult을 사용해야합니다.android - 클래스에서 onActivityResult를 사용하는 방법

가, 어떻게 내 수업에서 상황을 처리 할 수있는 문제가
startActivityForResult(captureIntent, CAMERA_CAPTURE); 


    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

    } 

, 내가 한 사용 : 내 수업 시간에이 코드를 사용

,이 코드는 카메라와 proccesing 데이터에 대한 호출 startActivityForResult 요구 내 수업의 onActivityResult?
약 10 번 사용하게되고 코드 반복을 원하지 않기 때문에 startActivityForResult을 acitivty에 구현하고 싶지 않습니다.

어떻게 할 수 있습니까?

+0

잘 인터페이스 또는 의도 브로드 캐스트 –

+0

"약 10 번 사용할 수 있고 코드를 반복하지 않아도됩니다.", 항상 다른 요청 코드를 지정하고 차별화 할 수 있습니다. –

답변

0

우선은 단순한 Interface을 만들고 taht를 구현하고 활동 결과를 얻을 수있는 주요 활동을 사용하여 다음과 같이 .something 클래스로 전송해야 당신은 모든 클래스에서 startActivityForResult을 구현할 필요가 없습니다

인터페이스 :

public interface IMyClass { 
    void getResult(int requestCode, int resultCode, Intent data); 
    } 

주요 활동 :

public class MainActivity extends AppCompatActivity { 
    static MainActivity mainActivityOBJ; 
    IMyClass requestedClass; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mainActivityOBJ=this; 
    } 

    public void startActivityForMe(IMyClass c , Intent intent,int requestCode) 
    { 
    requestedClass=c; 
    startActivityForResult(intent,requestCode); 
    } 



    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if(requestedClass!=null) 
     { 
     requestedClass.getResult(requestCode,resultCode,data); 
     } 
    } 
} 

및 클래스 :

public class MyClass implements IMyClass { 
    @Override 
    public void getResult(int requestCode, int resultCode, Intent data) { 

    } 

    private void StartAC() 
     { 
     Intent intent=new Intent(MainActivity.mainActivityOBJ,someActivity.class); 
     MainActivity.mainActivityOBJ.startActivityForMe(this,intent,1); 
     } 
    }