У меня очень неприятная проблема с управлением.Основная деятельность уничтожена при запуске PreferenceActivity
У меня есть 2 вида деятельности:
1- Главная acitivty
2- Preference активность выдвинутую основной деятельности.
On 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();
}
}
}
Edit: Существует декларация деятельности в моем файле манифеста:
<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>
Буду признателен за любую помощь.
Что делает ваш манифеста выглядеть? –
Привет, вы можете показать manifest.xml проекта ?. Возможно, здесь есть конфигурация, которая делает это. BestRegards – vgarzom
Привет, я разместил содержимое файла манифеста. Большое спасибо ! – Meher