0

결과에 대한 시작 활동을 사용하여 활동을 호출하는이 프래그먼트가 있습니다. 이 활동은 잠금 패턴을 보여야합니다. 문제는 'onActivityResult'가 호출되지 않는다는 것입니다. 나는 체크 할 토스트를 몇 개 넣었지만 결코 인쇄되지 않습니다.onActivityResult가 프래그먼트에서 호출되지 않음

public class int_Create_Pattern extends Fragment { 
    private static final int REQ_CREATE_PATTERN = 1; 

    @Override 
    public void onStart() { 
     // TODO Auto-generated method stub 

     super.onStart(); 
     LockPatternView.MATRIX_WIDTH = 4; 
     Intent intent = new Intent(LockPatternActivity.ACTION_CREATE_PATTERN, 
       null, getActivity().getBaseContext(), LockPatternActivity.class); 
     startActivityForResult(intent, REQ_CREATE_PATTERN); 
    } 

    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(resultCode, resultCode, data); 

     switch (requestCode) { 
     case REQ_CREATE_PATTERN: { 
      if (resultCode == LockPatternActivity.RESULT_OK) { 
       char[] pattern = data 
         .getCharArrayExtra(LockPatternActivity.EXTRA_PATTERN); 
       DataBaseHandler handler = new DataBaseHandler(getActivity() 
         .getApplicationContext()); 
       handler.open(); 

       String PatternToWrite = new String(pattern); 
       handler.createPattern(PatternToWrite); 
       handler.close(); 
       Log.d("DEBUG", new String(pattern)); 

       Toast.makeText(getActivity().getApplicationContext(), 
         "Pattern Recorded", Toast.LENGTH_LONG).show(); 

      } 
      if (resultCode == LockPatternActivity.RESULT_CANCELED) { 

       Toast.makeText(getActivity().getApplicationContext(), 
         "Pattern Cancelled", Toast.LENGTH_LONG).show(); 
      } 
      break; 
     }// REQ_CREATE_PATTERN 

     } 

    } 

    } 
+2

http://stackoverflow.com/questions/6147884/onactivityresult-not-being-called-in-fragment –

답변

0

onActivityResult는 활동 방법이어야하며 단편에 있지 않아야합니다. 또 다른 문제점은 단편에서 새 활동을 호출해서는 안됩니다.

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

새로운 활동을 호출하고, 그 결과를 처리하기위한 responsable이어야하여 단편을 보유 활성 노호 링크에 의해 기술 된 바와 같이, COMUNICATION위한 인터페이스를 구현한다.

+0

그래서 난 그냥 조각에서 다른 활동을 호출해야하고 그 활동의 모든 내 정보를 처리? –

+0

아니요. 조각에서 활동에 결과에 대한 새로운 활동을 시작해야한다고 알려야합니다. 링크로 설명 된대로 인터페이스를 사용하여 작업을 수행 할 수 있습니다. "onActivityResult"는이 첫 번째 활동에 있어야합니다. 조각에 결과를 전달하려면 http://developer.android.com/training/basics/fragments/communicating.html#Deliver –

0
In Parent Class: do this code 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.dualPane); 
    fragment.onActivityResult(requestCode, resultCode, data); 
} 
In Child Class: 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    //in fragment class callback 
} 
+0

같은 링크에 설명 된 코드를 구현하면됩니다. [ 여기] (http://stackoverflow.com/questions/6147884/onactivityresult-not-being-called-in-fragment). 그것 didnt 일 –

+0

어떤 오류가 당신은 이전에 많은 시간을 사용했다 위의 코드와 같은 것을 누락 수도 점점 ... – koutuk

+0

귀하의 부모 클래스를 공유하시기 바랍니다 – koutuk

관련 문제