2012-05-31 4 views
2

이 문제는 간단하지만 대답을 찾을 수 없다고 생각합니다.의도가 끝난 후 함수 호출

public void onButtonClick(View v) { 

    Intent intent = new Intent(); 
    intent.setAction(android.content.Intent.ACTION_VIEW); 
    File file = new File(root + "/Doppen/"+ "doppen.txt"); 
    intent.setDataAndType(Uri.fromFile(file), "text/*"); 
    startActivityForResult(intent, 1);     
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, getIntent()); 
    if(resultCode==RESULT_OK && requestCode==1){ 
     System.out.println("RESULT :D"); 
    } 
} 

여기에 잘못이 무엇인지 어떤 아이디어를 가지고 : 나는이 코드 조각을 가지고?

텍스트 파일을 열었지만 사용자가 "저장"을 탭한 후에 다른 기능을 호출하고 싶습니다. 자동으로이 작업을 수행하는 방법은 무엇입니까?
그래서 사용자가 "저장"을 할 때 또는 의도가 완료/완료되었을 때를 확인하는 방법은 무엇입니까?

편집 1 : 나는 문제가 발견 : 내가 if(resultCode==RESULT_OK && requestCode==1){를 언급 할 때 그것은이 완료되면 결과를 인쇄하지, 그래서 나는 이제 왜 질문을 잘못 어디 있는지 알고 : P

EDIT 2 :

requestCode는 "1"을 출력하므로 좋습니다. 그러나 resultCode는 좋지 않은 "0"을 인쇄합니다.

편집 3 : 답을 찾을 수

, 어쩌면 또한 다른 사람을 위해 유용합니다.
Save (저장)를 누른 후 휴대 전화의 backbutton을 사용하여 앱으로 돌아가지만 resultCode에 "0"이 표시됩니다.

+0

onActivityResult 앞에 "@Override"를 추가하십시오. – jmhend

+0

@jmhend 답장을 보내 주셔서 감사합니다. 그러나 작동하지 않았습니다. – Bigflow

답변

3

startActivity() 대신 startActivityForResult()으로 전화하십시오. 활동이 완료되면 활동의 onActivityResult() 메소드로 콜백하여 필요한 것을 할 수 있습니다.

자세한 내용은 the documentation을 참조하십시오.


편집 : RESULT_OK는 표준 결과 코드이지만, 활동은보다 크거나 RESULT_FIRST_USER와 같은 다른 값을 반환 무료입니다. 0은 RESULT_CANCELED입니다. 일반적으로 누군가가 뒤로 버튼을 눌렀을 때 발생합니다.

+0

내 질문을 다시 확인해 주실 수 있습니까? (약간 변경했습니다), 이것도 (인터넷 예제 사용) 시도했지만 작동하도록 할 수 없습니다. ( – Bigflow

+0

@ Bigflow : 편집 내 대답을 참조하십시오. – Blrfl

관련 문제