onActivityResult 没有被调用?
onActivityResult not being called?
我从 HomeActivity
的工具栏开始 ProfileActivity
。
出于某种原因,当我从 ProfileActivity
return 时, onActivityResult()
没有被调用。下面是相关代码。提前致谢!
里面的工具栏代码HomeActivity
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.searchBox:
return true;
case R.id.userProfile:
Intent intent = new Intent(HomeActivity.this, ProfileActivity.class);
Bundle b = new Bundle();
b.putString("userID", uID);
intent.putExtras(b);
startActivityForResult(intent, 10);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
onActivityResult()
里面 HomeActivity
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 10) {
Log.d("WorkoutLog", "onresult called");
if(resultCode == Activity.RESULT_OK){
Toast.makeText(context, data.getStringExtra("date"), Toast.LENGTH_SHORT).show();
}
}
}
在 ProfileActivity
中调用的方法 return 返回首页:
public void editWorkout(String date){
Intent intent = new Intent();
intent.putExtra("date", date);
setResult(Activity.RESULT_OK, intent);
finish();
}
HomeActivity
和 ProfileActivity
清单:
<activity
android:name=".HomeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".ProfileActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.PROFILE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
finish()
有效杀死调用 Activity
,不要在 startActivityForResult()
:
之后调用它
case R.id.userProfile:
Intent intent = new Intent(HomeActivity.this, ProfileActivity.class);
Bundle b = new Bundle();
b.putString("userID", uID);
intent.putExtras(b);
startActivityForResult(intent, 10);
return true;
我从 HomeActivity
的工具栏开始 ProfileActivity
。
出于某种原因,当我从 ProfileActivity
return 时, onActivityResult()
没有被调用。下面是相关代码。提前致谢!
里面的工具栏代码HomeActivity
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.searchBox:
return true;
case R.id.userProfile:
Intent intent = new Intent(HomeActivity.this, ProfileActivity.class);
Bundle b = new Bundle();
b.putString("userID", uID);
intent.putExtras(b);
startActivityForResult(intent, 10);
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
onActivityResult()
里面 HomeActivity
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 10) {
Log.d("WorkoutLog", "onresult called");
if(resultCode == Activity.RESULT_OK){
Toast.makeText(context, data.getStringExtra("date"), Toast.LENGTH_SHORT).show();
}
}
}
在 ProfileActivity
中调用的方法 return 返回首页:
public void editWorkout(String date){
Intent intent = new Intent();
intent.putExtra("date", date);
setResult(Activity.RESULT_OK, intent);
finish();
}
HomeActivity
和 ProfileActivity
清单:
<activity
android:name=".HomeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".ProfileActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.PROFILE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
finish()
有效杀死调用 Activity
,不要在 startActivityForResult()
:
case R.id.userProfile:
Intent intent = new Intent(HomeActivity.this, ProfileActivity.class);
Bundle b = new Bundle();
b.putString("userID", uID);
intent.putExtras(b);
startActivityForResult(intent, 10);
return true;