В моем пункте меню на панели навигации у меня есть
case R.id.nav_manage:
// Handle the tools action (for now display a toast).
drawer.closeDrawer(GravityCompat.START);
Intent intentSetting = new Intent(this, SettingsActivity.class);
startActivity(intentSetting);
return true;
, где SettingsActivity
равно
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
public static class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);
}
}
Теперь это activity settings layout
равно
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/settings"
android:layout_width="match_parent"
android:layout_height="match_parent" />
, а root_preference.xml
- это
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory app:title="Theme">
<ListPreference
app:defaultValue="default"
app:entries="@array/themes_labels"
app:entryValues="@array/themes_color"
app:key="theme"
app:title="@string/Theme"
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
</PreferenceScreen>
Проблема заключается в том, что для этого единственного списка предпочтений сначала я открываю действие, затем со вторым щелчком я открываю диалоговое окно для предпочтения списка.
Я хочу открыть диалоговое окно напрямую, когда я нажимаю на меню навигационной панели, т. Е. Из R.id.nav_manage
, не открывая сначала действие.
Я не знаю java, поэтому, пожалуйста, помощь.