G
Gast2
Gast
Hallo Leute,
ich möchte in einer Activity eine Meldung bekommen, wenn in einer anderen eine Preference gesetzt wird. Leider gelingt mir dies nicht und ich weiß nicht warum.
Zum Testen und Veranschaulichen habe ich zwei Activitys geschrieben, die ich hier abbilden will.
StartActivity: (das Layout enthält einen Button "Start")
ZweiteActivity: (das Layout enthält einen Button Save Preference")
Leider gibt es beim setzen der Preference keinen Beep.
Warum funktioniert keiner der Listener?
Hat jemand eine Lösung?
Frank
ich möchte in einer Activity eine Meldung bekommen, wenn in einer anderen eine Preference gesetzt wird. Leider gelingt mir dies nicht und ich weiß nicht warum.
Zum Testen und Veranschaulichen habe ich zwei Activitys geschrieben, die ich hier abbilden will.
StartActivity: (das Layout enthält einen Button "Start")
Java:
package de.praeferenzentest;
import java.util.prefs.PreferenceChangeEvent;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.media.AudioManager;
import android.media.ToneGenerator;
import android.os.Bundle;
import android.preference.Preference;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class StartActivity extends Activity implements OnClickListener, OnPreferenceChangeListener {
private Button btn_start;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start_layout);
btn_start = (Button) findViewById(R.id.btn_go);
btn_start.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(this, ZweiteActivity.class);
startActivity(intent);
}
public void preferenceChange(PreferenceChangeEvent pce) {
final ToneGenerator tg = new ToneGenerator(
AudioManager.STREAM_NOTIFICATION, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
}
public boolean onPreferenceChange(Preference preference, Object newValue) {
final ToneGenerator tg = new ToneGenerator(
AudioManager.STREAM_NOTIFICATION, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
return false;
}
public boolean onPreferenceClick(Preference preference) {
final ToneGenerator tg = new ToneGenerator(
AudioManager.STREAM_NOTIFICATION, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
return false;
}
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1) {
final ToneGenerator tg = new ToneGenerator(
AudioManager.STREAM_NOTIFICATION, 100);
tg.startTone(ToneGenerator.TONE_PROP_BEEP);
}
}
ZweiteActivity: (das Layout enthält einen Button Save Preference")
Java:
package de.praeferenzentest;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ZweiteActivity extends Activity implements OnClickListener {
private int value;
private Button btn_save_preference;
private SharedPreferences sharedPreferences;
private Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_zweite);
sharedPreferences = getSharedPreferences("SharedValues", 0);
btn_save_preference = (Button) findViewById(R.id.btn_setPreference);
btn_save_preference.setOnClickListener(this);
value = 10;
}
@Override
public void onClick(View arg0) {
editor = sharedPreferences.edit();
editor.putInt("value", value);
editor.commit();
}
}
Leider gibt es beim setzen der Preference keinen Beep.
Warum funktioniert keiner der Listener?
Hat jemand eine Lösung?
Frank
Zuletzt bearbeitet von einem Moderator: