내 앱을 통해 whatsapp에 이미지를 첨부하려고합니다. 내 응용 프로그램에는 두 가지 활동이 포함되어 있습니다. A : 많은 조각이 포함되어 있습니다. B : 그냥 활동조각에있는 onActivityResult가 호출되지 않았습니다.
이미지를 선택하기위한 조각이 포함 된 내 Mainactivity에 의도 필터를 넣었을 때. 그래서 여기에 무슨이다 :
는 WHATSAPP 할 수있는 사진을 첨부 할 시도 -> 열기 Mainactivity이 (Fragment1가) GRIDVIEW 항목을 클릭 ->이 활동 B로 이동
내가 다시 데이터를 전송하는 B에서 버튼을 클릭 Whatsapp에, 그것은 Fragment의 OnActivityResult 메소드를 호출하지 않는 Mainactivity로 돌아갔다. whatsapp에 데이터를 다시 보내야합니다. 이 문제와 관련된 모든 질문을 검토했습니다. 그러나 아무것도 작동하지 않습니다! :/내가 사용하고
코드 :
Mainactivity.java (즉 조각을 포함)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
Fragment1.java
mGrid.setOnItemClickListener(
new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
// TODO Auto-generated method stub
Intent i = new Intent(getActivity(), FullImageActivity.class);
// passing array index
i.putExtra("im",fileList);
i.putExtra("pos", position);
i.putExtra("folder", folder);
i.putExtra("req", isinint);
startActivityForResult(i, Activity.RESULT_OK);
}
});
Fragment1.java (onActivityResult를)
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){
Log.i("called","called");
getActivity().setResult(Activity.RESULT_OK, data);
getActivity().finish();
}
}
활동 B :
send.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.i("called","btncalled");
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND, Uri.parse(Environment.getExternalStorageDirectory() + "/Smileys/" + imageUrls[pagerPosition].replace("assets://pics/", "")));
FullImageActivity.this.setResult(Activity.RESULT_OK, shareIntent); //set the file/intent as result
FullImageActivity.this.finish();
}
});
. 1 - requestCode로 상수를 생성하십시오 (예 :'private static final int REQUEST_CODE_SELECT_PICTURE = 1;'). Activity.RESULT_OK 대신 startActivityForResult를 호출 할 때 사용하십시오. 2 - 확인하십시오. 주요 활동이 로그를 사용하여 onActivityResult에 대한 호출을받습니다. 3 - 다른 프래그먼트가이 리턴을 수신하는지 확인하십시오. – MartinCR