1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. Diegorn, 27.03.2013 #1
    Diegorn

    Diegorn Threadstarter Android-Hilfe.de Mitglied

    Hallo zusammen
    Ich habe mir eine Einstellungen.xml erstellt und habe dort eine Preference erstellt mit dem Titel "Datenbank löschen". Wenn man jetzt darauf drückt möchte ich das etwas bestimmtes passiert (vielleicht auch ein Dialog). Aber wie mache ich das?

    Gruß Diegorn
     
  2. StefMa, 27.03.2013 #2
    StefMa

    StefMa Gewerbliches Mitglied

  3. Diegorn, 27.03.2013 #3
    Diegorn

    Diegorn Threadstarter Android-Hilfe.de Mitglied

    sry werde da nicht ganz schlau draus :(
    Habe bis jetzt:

    einstellungen.xml
    Code:
    <?xml version="1.0" encoding="utf-8"?>
        <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="Einstellungen">
            <PreferenceCategory android:title="Datenbank">
                <Preference 
                    android:title="Fragen löschen!"
                    android:key="deleteFaslcheFragen"
                    android:summary="Löscht alle Fragen aus der Datenbank!" >
                    <intent
                        android:targetPackage="de.Test.Test.classes"
                        android:targetClass="de.Test.Test.classes.Einstellungen"
                        android:action="de.Test.Test.classes.FalscheFragenClick" />
                </Preference>
            </PreferenceCategory>
        </PreferenceScreen>
    Einstellungen.java
    Code:
    public class Einstellungen extends PreferenceActivity {
    
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		
    		addPreferencesFromResource(R.xml.einstellungen);
    	}
    	
    	public void FalscheFragenClick(View view){
    		Toast.makeText(this, "Test", Toast.LENGTH_LONG);
    	}
    
    }
     
  4. StefMa, 28.03.2013 #4
    StefMa

    StefMa Gewerbliches Mitglied

    Hi,

    Du willst doch aber gar nicht ein neue Activity öffnen?! Du willst nur einen Toast anzeigen oder bsp. einen Dialog?

    Für einen Dialog gibt es DialogPreference | Android Developers

    Und wenn du alternative, also genrell auf einen Click auf eine Preference reagieren möchtest, gibt es das
    Preference.OnPreferenceClickListener | Android Developers

    Gruß
     
    Diegorn bedankt sich.
  5. orium, 28.03.2013 #5
    orium

    orium Android-Hilfe.de Mitglied

    Hallöchen,

    hatte dieses "Problem" vor kurzem auch erst, gelöst habe ich es wie folgt:

    Preference layout:

    Code:
     <ListPreference
                android:defaultValue="white"
                android:dialogTitle="Choose an option please"
                android:entries="@array/BackgroundItems"
                android:entryValues="@array/BackgroundValues"
                android:key="background"
                android:title="Background" >
    </ListPreference>
    
    Spezifische preference (in dem Fall hier das ListPreference mit key background) ansteuern

    Code:
    Preference myPref = (Preference) findPreference("background");
    
    Und nachfolgend einfach einen für in deinem Fall OnPreferenceClickListener einbauen. Bei mir wollte ich ein Event auftreten lassen, wenn die Option "custom" gewählt wird. Das Beispiel hier:

    Code:
    OnPreferenceChangeListener listener = new OnPreferenceChangeListener() {
    
    			@Override
    			public boolean onPreferenceChange(Preference preference,
    					Object newValue) {
    
    				if (newValue.toString().equalsIgnoreCase("custom")) {
    	                           // xy aktion ausführen
    				}
    				
    				return true;
    			}
    		};
    
    		myPref.setOnPreferenceChangeListener((OnPreferenceChangeListener) listener);
    
    
    Hier jedoch eben mit einem OnPreferenceChangeListener, d.h. eben nicht wenn nur die Preference geklickt wird, sondern sie wirklich geändert wird.
    Ob das jetzt die beste oder schönste Möglichkeit ist das zu lösen weiß ich nicht, für mich hat das aber geklappt wie ich das wollte :)

    Hoffe das konnte dir irgendwie weiterhelfen.

    Grüße
    Alex
     
    Zuletzt bearbeitet: 28.03.2013
    Diegorn bedankt sich.
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Login merken und activities öffnen - shared preferences Android App Entwicklung 28.01.2018

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. preferences onclick

    ,
  2. android listpreference example

    ,
  3. Android preferences onClick example code