一个问题:我有一个EditTextPreference让用户输入应用程序的默认路径.
如何管理在我使用的首选项片段中看到新值?
用户在首选项窗口中单击确定以完成新设置后,我想将新路径写为标题下方的摘要.
我已经尝试过使用onSharedPreferenceChanged但它没有用.我不知道如何从用户文本所在的弹出窗口访问编辑字段.
希望能找到一些安德烈亚斯的帮助!
编辑:这是我使用和修改Rustam建议的整个PreferenceFragment的源代码.不幸的是它不起作用.
package com.example.wbsettings;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
public class PreferenceFrag extends PreferenceFragment
implements SharedPreferences.OnSharedPreferenceChangeListener{
public static final String KEYVAL = "startpath";
SharedPreferences sp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
EditTextPreference prefUrl = (EditTextPreference) findPreference(KEYVAL);
prefUrl.getEditText().setHint("default path");
//>> Here the app crashed when I debug it
------------------------------------
prefUrl.setSummary(sp.getString(KEYVAL, ""));
}//onCreate
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {
Preference pref = findPreference(key); …Run Code Online (Sandbox Code Playgroud) 我的系统是
我安装了xdebug dll,就像在https://xdebug.org/docs/install中提到的那样.
php.ini中:
[xdebug]
zend_extension=F:\wamp64\bin\php\php5.6.25\ext\php_xdebug-2.5.0-5.6-vc11-x86_64.dll
Run Code Online (Sandbox Code Playgroud)
我查看了php.ini,发现了zend-Logo和这个
编译器MSVC11(Visual C++ 2012)
...
该程序使用Zend脚本语言引擎:
Zend Engine v2.6.0,版权所有(c)1998-2016 Zend Technologies
with Xdebug v2.5.0,Copyright(c)2002-2016,由Derick Rethans提供
我在https://xdebug.org/wizard.php上运行测试并得到了
Summary
Xdebug installed: no
Server API: Command Line Interface
Windows: yes - Compiler: MS VC11 - Architecture: x64
Zend Server: no
PHP Version: 5.6.25
Zend API nr: 220131226
PHP API nr: 20131226
Debug Build: no
Thread Safe Build: yes
Configuration File Path: C:\WINDOWS
Configuration File: …Run Code Online (Sandbox Code Playgroud)