选择注销首选项时,我的 startActivityForResult 没有返回到 onActivityResult。奇怪的是,在我开始转换为使用 REST 调用之前,我很确定它曾经可以工作,但我不知道可能发生了什么变化。MainOverview 活动调用设置活动。是的,MainOverview 省略了 onCreate 方法,因为我认为它在这里并不重要。这是 MainOverview 代码:
public class MainOverviewActivity extends BaseActivity implements OnClickListener
{
public void onClick(View v)
{
switch(v.getId())
{
case R.id.show_settings:
openSettings();
break;
}
}
public static final String INTENT_RESULT_LOGOUT = "logout";
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Log.i("MainOverviewActivity", "onActivityResult before finish() :)");
if(requestCode == 123)
{
if(resultCode == Activity.RESULT_OK)
{
if(data.getBooleanExtra(SettingsActivity.INTENT_RESULT_LOGOUT, false))
{
Log.i("MainOverviewActivity", "finish() :)");
Intent i = new Intent(this, LoginActivity.class);
startActivity(i);
finish();
}
}
}
}
protected void openSettings()
{
Intent intent = new Intent(this, SettingsActivity.class);
startActivityForResult(intent, 123);
}
}
这是我的设置活动代码:
public class SettingsActivity extends PreferenceActivity
{
public static final String INTENT_RESULT_LOGOUT = "logout";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Intent returnIntent = new Intent();
returnIntent.putExtra(INTENT_RESULT_LOGOUT, true);
setResult(RESULT_OK, returnIntent);
finish();
}
这是我的 settings.xml 页面,我在预览页面上收到“com.android.layoutlib.bridge.android.BridgeXmlBlockParser.next(BridgeXmlBlockParser.java:301) 处的 java.lang.NullPointerException”,但我没有想法为什么:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Server account">
<Preference
android:title="Logout"
android:key="logout" />
<Preference
android:title="Version"
android:key="version" />
</PreferenceCategory>
</PreferenceScreen>
它进入 MainOverview 中的 onResume(),但不是 onActivityResult(),我不知道为什么。结果代码高于 0。任何建议都会很棒。我已经阅读了其他几个 StackOverflow 页面,但还没有看到答案。我没有在任何地方设置启动模式。我没主意了。
我已经为此工作了一个星期,但仍然卡住了。
提前致谢!
德文