我有一个非常烦人的管理活动问题。
我有 2 项活动:
1-主要活动
2- 主要活动发起的偏好活动。
在 PreferenceActivity 上,当我点击“上一个”按钮时,应用程序完成而不是返回到主要活动!我调试了代码,我注意到主要活动总是在我的偏好活动的 onCreate() 方法被调用之后被破坏!
我如何称呼偏好活动:
// Launch Settings activity
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
还有我喜欢的活动课:
public class SettingsActivity extends PreferenceActivity {
private static ListView listView;
@SuppressLint("NewApi")
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new MyPreferenceFragment())
.commit();
// Setting the list's background to be white
listView = (ListView) findViewById(android.R.id.list);
}
@SuppressLint("NewApi")
public static class MyPreferenceFragment extends PreferenceFragment
implements OnPreferenceClickListener,
ColorPickerDialog.OnColorChangedListener {
/**
* Background color preference.
*/
private Preference prefBgColor;
/**
* Text color preference.
*/
private Preference prefTextColor;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
final Preference prefBgColor = findPreference("bg_color");
prefBgColor
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference arg0) {
// Create color picker dialog
new ColorPickerDialog(getActivity(),
MyPreferenceFragment.this, prefBgColor
.getKey(), prefBgColor
.getSharedPreferences().getInt(
prefBgColor.getKey(), 0),
prefBgColor.getSharedPreferences().getInt(
prefBgColor.getKey(), 0)).show();
return true;
}
});
final Preference prefTextColor = findPreference("text_color");
prefTextColor
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference arg0) {
// Create color picker dialog
new ColorPickerDialog(getActivity(),
MyPreferenceFragment.this, prefTextColor
.getKey(), prefTextColor
.getSharedPreferences().getInt(
prefTextColor.getKey(), 0),
prefTextColor.getSharedPreferences()
.getInt(prefTextColor.getKey(), 0))
.show();
return true;
}
});
}
@SuppressLint("NewApi")
@Override
public boolean onPreferenceClick(Preference pref) {
return true;
}
@SuppressLint("NewApi")
@Override
public void colorChanged(String key, int color) {
// Get choosed color and save it
this.findPreference(key).getEditor().putInt(key, color).commit();
}
}
}
编辑:我的清单文件中有活动声明:
<activity
android:name="com.meher.tools.menulauncher.MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|screenSize"
android:theme="@style/AppTheme"
android:launchMode="standard" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Settings activity -->
<activity
android:name="com.meher.tools.menulauncher.SettingsActivity"
android:configChanges="orientation|screenSize"
android:theme="@style/AppTheme"
android:launchMode="standard" >
</activity>
我将非常感谢任何帮助。