我从我的工人活动开始Activity(后代PreferenceActivity)如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1458)
loadInfo();
}
void showSettingsDialog()
{
startActivityForResult(new Intent().setClass(this, MyConfigure.class), 1458);
}
Run Code Online (Sandbox Code Playgroud)
MyConfigureclass没有任何setResult()电话.实际上,MyConfigure除了OnCreate()使用加载首选项之外,类没有任何代码addPreferencesFromResource.
如今onActivityResult被称为具有requestCode的1458过早,之后MyConfigure活动运行.测试1.6和2.1仿真器以及2.1设备.是否有人打电话到setResult()某处PreferenceActivity?或者如何解释这个过早的电话呢?
我真的需要这个代码,我在互联网上搜索了3个小时,但我找不到一个完整而简单的代码,我测试了很多代码,但有些没有用,有些不好,请帮我一个完整而简单代码,谢谢编辑:我有选择图像的代码,但请给我一个完整的代码,我在标题中说的所有事情,因为我不能像代码.
btn_choose.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"),SELECT_PICTURE);
alertDialog1.dismiss();
}
});
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
selectedImagePath1=selectedImagePath;
System.out.println("Image Path : " + selectedImagePath);
image_capture1.setImageURI(selectedImageUri);
}
Run Code Online (Sandbox Code Playgroud) 我想将此添加到另一个关于resultCode == 0和的问题列表中requestCode == 0.
这是概要:
使用NoteActivity调用.NoteSettingsActivitystartActivityForResult()
我在网上搜索过,当我按下按钮的时候super.onBackPressed(),resultCode == 0.好后进一步研究,似乎它返回代码每次按下后退按钮,但拙劣地修补,经过super.onBackPressed()电话,只是简单finish()的应用onActivityResult()的resultCode仍是等于0.它跟相同requestCode.
此外,我尝试操作清单文件,我做了很多更改只是为了让这项工作,但nothings对我有用.
这是片段.请注意,我已经恢复到我之前的提交,所以我已经失去了我最近的修改,但请注意我写的代码之前我注意到它resultCode总是等于0(ACTIVITY_CANCELED)
@Override
public void onNoteSettingsActivityCalled(Note note)
{
Intent intent = new Intent(this, NoteSettingsActivity.class);
intent.putExtra(NoteExtrasKey.EXTRA_NOTE_ID, note.getNoteID());
startActivityForResult(intent, NoteRequest.REQUEST_UPDATE_SETTINGS);
}
Run Code Online (Sandbox Code Playgroud)
这是检测到活动的时间:
@Override
public void onBackPressed()
{
Log.i(NoteApplication.TAG, "NoteSettingsActivity.onBackPressed() has been called.");
Intent intent = new Intent();
intent.putExtra(NoteExtrasKey.EXTRA_NOTE_REMINDENABLED , mRemindEnabled);
intent.putExtra(NoteExtrasKey.EXTRA_NOTE_REMINDEVERY , mDaysSelected);
intent.putExtra(NoteExtrasKey.EXTRA_NOTE_REMINDON , String.valueOf(mRemindDateTime)); …Run Code Online (Sandbox Code Playgroud)