2011-09-27 3 views
0

Я пытаюсь установить значение для EditTextPreference пунктаSetText не работает EditTextPreference

с hostPreference.setText("Not yet set");

Но текст не отображается

enter image description here

Я хочу, чтобы показать, как Use Name здесь

enter image description here

public class HostSettingActivity extends PreferenceActivity { 

    private final String MY_DEBUG_TAG = "SettingActivity"; 
    SharedPreferences sharedPrefs; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     Log.i(MY_DEBUG_TAG, "HostSettingActivity Started"); 
     super.onCreate(savedInstanceState); 
     sharedPrefs = getPreferenceManager().getSharedPreferences(); 
     setPreferenceScreen(createPreferenceHierarchy()); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     Log.e(MY_DEBUG_TAG, "On Destroy"); 
    } 

    private PreferenceScreen createPreferenceHierarchy() { 

     // Root 
     PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this); 

     PreferenceCategory dialogBasedPrefCat = new PreferenceCategory(this); 
     dialogBasedPrefCat.setTitle("Host Settings"); 
     root.addPreference(dialogBasedPrefCat); 

     EditTextPreference hostPreference = new EditTextPreference(this); 
     hostPreference.setKey("host"); 
     hostPreference.setDialogTitle("Host"); 
     hostPreference.setText("Not yet set"); 
     hostPreference.setDefaultValue("http://example.com"); 
     hostPreference.setSummary("Set host"); 
     dialogBasedPrefCat.addPreference(hostPreference); 

     EditTextPreference portPreference = new EditTextPreference(this); 
     portPreference.setKey("port"); 
     portPreference.setDialogTitle("Port"); 
     portPreference.setDefaultValue("8080"); 
     portPreference.setSummary("Set port"); 
     dialogBasedPrefCat.addPreference(portPreference); 

     hostPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { 
      @Override 
      public boolean onPreferenceChange(Preference preference, Object newValue) { 
       EditTextPreference etp = (EditTextPreference) preference; 

       String newHostValue = newValue.toString(); 
       Log.i(MY_DEBUG_TAG, "New Host: "+newHostValue); 
       etp.setText(newHostValue); 
       return true; 
      } 
     }); 
     return root; 
    } 

} 
+0

ли вы имеете в виду, что '«Пока не установлено»' не появляется при нажатии кнопки 'Set host' предпочтение? Где должен срабатывать «setText» и какой результат вы ожидаете? – Knickedi

+0

Устанавливает ли значение по умолчанию решение проблемы? – nixan

+0

@Knickedi Я хочу, чтобы 'еще не установлен', чтобы прийти как« имя пользователя »здесь http://www.cre8ive.kr/blog/wp-content/uploads/android_prefs_3.jpg –

ответ

3

Текст не отображается в EditTextPreference, но может быть отредактирован.

Что такое НАЗВАНИЕ, и оно установлено setTitle.

Если вы хотите отобразить отредактированный текст в заголовке, вы должны установить его как заголовок самостоятельно.