In meiner Android-Anwendung habe ich ein Einstellungslayout mit vier Eigenschaften. Sie können die Einstellungen von MainActivity
und von NoticeActivity
aufrufen. Dazu habe ich diese Methode überschrieben:So zeigen Sie bestimmte Eigenschaften in den Einstellungen an
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
}
Um die Einstellungen zu zeigen, ich habe diese beiden Klassen:
public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
}
public class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// preference_general -> layout with 4 properties
addPreferencesFromResource(R.xml.preference_general);
}
}
Was ich tun möchte, ist: Wenn die Einstellungen aus dem MainActivity
genannt werden, ich möchte alle vier Eigenschaften anzeigen, aber wenn von der NoticeActivity
aufgerufen werden möchte ich nur die ersten drei zeigen.
Wie kann ich das tun, ohne ein zweites Layout zu erstellen?
Ich hab diese Idee auch. Aber dann habe ich zwei Layouts, die fast gleich sind. Und wenn ich Änderungen an den Einstellungen vornehmen möchte, muss ich zwei Layouts ändern. Ich denke irgendwann werde ich Probleme haben. – user7174483
Versuchen Sie, einige Tasten nach Ihren Bedürfnissen zu verstecken. Machen Sie das Layout mit 4 Tasten und zum Anzeigen von 3 Tasten, verstecken Sie die 4. Taste. Es sollte helfen – Swr7der