내 Android 앱에서 startActivityForResult()
으로 새로운 활동을 시작합니다. 나는 onActivityResult()
의 결과를 완벽하게 얻습니다. 내 문제는 활동을 시작하기 전에 내가 알고있는 작은 데이터가 있으며 그 값을 onActivityResult()
에서 사용할 수 있어야한다는 것입니다. 추가로 내 의도에 첨부하려고했지만 액티비티가 결과를 반환 할 때 사용할 수있는 의도에 첨부되지 않았습니다. 데이터를 전역 변수에 저장하여 작동하도록 만들었지 만, 나는 그 접근법을 정말로 좋아하지 않습니다. 활동을 통해 데이터를 전달하는 더 나은 방법이 있습니까?새 활동을 통해 데이터를 전달할 수 있습니까?
답변
의견에 제안 된대로 데이터를 보내는 방법으로 requestCode를 사용하는 것은 나에게 해킹하는 것처럼 보입니다. 이것은 해당 코드의 의도 된 사용이 아니며, 일반적으로 이러한 방식으로 물건을 사용하면 나중에 문제가 발생할 수 있습니다.
클래스에 정수를 정의하고 저장하지 않는 이유는 무엇입니까? 의사 코드 :
class YourAcrivity extends Activity{
private int yourInt;
private function yourFunction(){
//set your int
yourInt = 11;
//call your activity
//startActivityForResult();
}
function onActivityResult(){
//use yourInt
}
}
맞습니다.이 방법은 요청 코드 값에 이상한 일을 할 필요가 없으므로 가장 깨끗합니다. 나는 당신의 함수()에 필요한 값을 설정하고 onActivityResult()를 읽은 후에이 접근법을 피하기를 바랬다. 이 두 가지 기능 외에는 전혀 의미가 없습니다. 클래스의 나머지 함수가 사용하지 않을 클래스 변수를 유지하고 싶지 않았습니다. 다른 옵션이 없다면, 나는 이것을 미래에 처리 할 방법입니다. 감사. –
setResult(int,Intent)을 사용하면 onActivityResult()에 데이터를 다시 보내고 주어진 의도와 동일한 값으로 전달할 수 있습니다 (action이나 uri와 같은 속성 중 일부는 쓸모가 없습니다).
두 활동 사이에 데이터를 구축하는 데 사용할 수 있습니다. 하나는 알고있는 정보를 제공하고 나머지는 나머지 부분에 저장하고 호출시 반환합니다.
내가 호출하는 활동은 표준 안드로이드 활동입니다 (사용자가 연락처를 볼 수 있도록 연락처 목록을 보여줍니다). 내가 만들지 않은 활동으로 이것을 할 수있는 방법이 있습니까? –
@Daedylus, Ofcourse! :) sargas 언급하는 것과 같은 방법입니다 :) – st0le
내 코드에서 setResult() 호출해야합니까? 내가 만든 액티비티에 setResult()를 사용하는 방법을 알고 있다고 생각하지만, 쓰지 않은 액티비티에는 어떻게해야합니까? –
- 1. 새 창으로 전달할 수 있습니까?
- 2. Winforms에서 WPF 컨트롤로 데이터를 전달할 수 있습니까?
- 3. env 변수를 ssh를 통해 전달할 수 있습니까?
- 4. querystring을 통해 .net Object를 전달할 수 있습니까?
- 5. NamedPipeServerStream 및 NamedPipeClientStream을 통해 전달할 문자열 데이터를 가져올 수 없습니다.
- 6. 일치하는 변수를 mod_rewrite로 새 URL에 전달할 수 있습니까?
- 7. HTTP 헤더에 사용자 정의 데이터를 전달할 수 있습니까?
- 8. 어린이부터 어린이까지 데이터를 전달할 수 없습니다.
- 9. 어떻게 url을 통해 변수를 함수에 전달할 수 있습니까?
- 10. 부모 활동을 닫고 새 활동을 시작하십시오.
- 11. 기존 활동을 새 로컬
- 12. aspx 페이지의 세션 데이터를 PHP 페이지로 전달할 수 있습니까?
- 13. 양식 제출을 통해 배열 값을 전달할 수 있습니까?
- 14. WCF - WCF 서비스를 통해 전달할 기존 유형을 사용할 수 있습니까
- 15. 활동을 사용하여 서비스에서 데이터를 요청하는 방법은 무엇입니까?
- 16. 외부 영화 클립 기능을 호출하거나 데이터를 전달할 수 있습니까
- 17. Django의 모든보기에서 어떤 템플릿으로 데이터를 전달할 수 있습니까?
- 18. 게시물 데이터를 양식에 전달할 수 있습니까 (데이터가있는 미리 채우기 양식)?
- 19. 파생 클래스를 만들지 않고 EventArgs에 데이터를 전달할 수 있습니까?
- 20. 주석을 클릭하면 어떻게 뷰 컨트롤러에 데이터를 전달할 수 있습니까?
- 21. xcode를 통해 데이터를 채울 수 있습니까?
- 22. Microsoft RPC를 통해 std :: string을 전달할 수 있습니까?
- 23. 어떻게 C90에서 함수를 통해 va_list를 전달할 수 있습니까?
- 24. URI에서 GET을 통해 "/"를 어떻게 전달할 수 있습니까?
- 25. PHP에서 변수를 통해 DEFINED 상수를 함수에 전달할 수 있습니까?
- 26. UIAlertView가 델리게이트를 통해 문자열과 int를 전달할 수 있습니까?
- 27. ctypes를 통해 참조로 파이썬 문자열을 전달할 수 있습니까?
- 28. E4X에 배열을 전달할 수 있습니까?
- 29. 변수를 eval에 전달할 수 있습니까?
- 30. QString을 QMessageBox에 전달할 수 있습니까?
이 문제가 계속되는 지 확실하지 않지만 저장해야하는 데이터의 양은 어느 정도입니까? 부가 아닌 int 인 경우, startActivityForResuilt의 requestCode로서 건네 줄 수가 있습니다. – sargas
통과해야하는 값은 매우 작은 정수 (1 ~ 12)입니다. startActivityForResult()에 대한 호출을 위해 requestCode (MY_REQUEST * 100 + value)에 값을 삽입했습니다. 그런 다음 onActivityResult()에서 두 부분을 다시 가져올 수 있습니다. 그것은 작동하는 것 같습니다. 감사. –
sargas, 여기서 정확한 답변을 표시하고 싶지만, 최종 답변은 원래 질문에 대한 의견입니다. 그래서 여러 번 질문에 대답 할 수 있습니까? 요청 코드를 사용하여 회신하여 내가 그것을 표시하고 공식 답변으로 만들 수있는 답변을 게시 할 수 있습니까? 감사. –