2017-12-01 5 views
2

사용자 지정 listView에서 startActivityForResult하는 방법?사용자 지정 ListView의 StartActivityForResult

((Activity) context).startActivityForResult(intent, 100); 

와 나는 onActivityResult 방법을 넣어해야하는 위치 : 여기
내 코드?

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

목록보기 내 MainActivity에 표시됩니다, 그래서 방법 onActivityResult을 두는 곳? MainActivity ??

+0

onActivityResult를 변경할 수는 – kimkevin

+0

하여 onActivityResult 방법은 작업 클래스에 속하는 MainActivity에서 오버라이드해야한다. 따라서 아무데도 해당 기능을 재정의 할 수있는 여지가 없습니다 (RecyclerView Adapter). 여기에 무슨 문제가있는 것 같습니까? –

+0

@RohitSingh 조각에는 onActivityResult도 있습니다. 그들의 호스트 Activity는 startActivityForResult를 호출 한 프래그먼트로 전달합니다. – RobCo

답변

0

귀하의 활동 이름을 MainActivity로 가정합니다. 그런 다음이

((MainActivity) context).startActivityForResult(intent, 100); 

을 그리고 당신의 MainActivity에해야 onActivityResult를 우선합니다.

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 
if(requestCode==100){ 
//do your things 
} 
} 
1

MainActivity에서 onActivityResult을 무시해야합니다. 두 번째 활동이 완료되면 호출됩니다. 이 라인크 읽기 : https://developer.android.com/training/basics/intents/result.html?hl=en

class MainActivity extends ... { 
... 
    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    } 
... 
1

MainActivity에서 onActivityResult (int requestCode, int resultCode, Intent 데이터)를 재정의해야합니다. MainActivity에서 활동 컨텍스트로 어댑터를 호출하면 원하지 않는 활동 캐스팅을 제거 할 수 있습니다.

어댑터 코드

context.startActivityForResult(intent, 100);