Preference onClick?

D

Diegorn

Ambitioniertes Mitglied
2
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
 
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);
	}

}
 
Hi,

In some cases, you might want a preference item to open a different activity instead of a settings screen, such as a web browser to view a web page. To invoke an Intent when the user selects a preference item, add an <intent> element as a child of the corresponding <Preference> element.

For example, here's how you can use a preference item to open a web page:
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ß
 
  • Danke
Reaktionen: Diegorn
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:
  • Danke
Reaktionen: Diegorn

Ähnliche Themen

T
Antworten
1
Aufrufe
829
jogimuc
J
T
Antworten
3
Aufrufe
1.045
jogimuc
J
kukuk
Antworten
2
Aufrufe
829
kukuk
kukuk
Zurück
Oben Unten