我有一个TabActivity,其中每个选项卡都有ActivityGroup。 在第一组的首页ActivityChild上,我有一个菜单选项,它给用户打开首选项的选项。 当我点击菜单上的“首选项”时,我在ActivityGroup中启动了PreferenceActivity,它显示了第一个选项卡上的PreferenceActivity。 问题是当我点击任何必须显示对话框(用于EditTextPreference)的特定首选项时。 我有以下异常:带有ActivityGroup和PreferenceActivity子项的TabActivity
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected]
据我所知,这个问题是因为由PreferenceActivity显示对话框使用错误的环境下,但是现在我如何改变创造对话的情境没有。
Belows是我创建的PreferenceActivity。
public class PreferencesActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.preferences);
addPreferencesFromResource(R.xml.preferences);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
prefs.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {
}
}
我不想创建自定义对话框。我想为此使用PreferenceActivity的机制。 下面是我正在用来添加到组中的代码:
i = new Intent(MyActivity.this, PreferencesActivity.class);
TabGroupActivity parentActivity = (TabGroupActivity) getParent();
parentActivity.startChildActivity("PreferencesActivity", i);
任何想法?
创建对话框时添加您的代码。 – blessenm
我没有使用任何实现来控制如何创建对话框的方式。我只是扩展PreferenceActivity和onCreate我已经添加了addPreferencesFromResource(R.xml.preferences); – user738686
为溶液[这里] [1] [1]:http://stackoverflow.com/questions/4877112/problem-showing-progressdialog-within-nested-tab-activity/8191979#8191979 –